Yeah, I understand the serialization issue, but you dont need the private values. 

```
this.ErrorCode = info.GetInt32("ErrorCode");
this.ErrorSubCode = info.GetInt32("ErrorSubCode");
this.ErrorType = info.GetString("ErrorType");
```