我正在尝试序列化.Net类库的System.Exception类,但是正如许多成员之前讨论的那样,该类的Data属性存在问题,因为它实现了IDictionary接口,这使得它成为了不可序列化。
我试图覆盖并标记在序列化期间忽略此属性以解决问题,但是没有成功,我仍然收到相同的错误。
public class CustomException : Exception
{
[IgnoreDataMemberAttribute]
public override IDictionary Data
{
get
{
return base.Data;
}
}
}
我也尝试使用具有相同结果的IgnoreXML属性,我正在使用XMLSerializer类。
答案 0 :(得分:0)
Serilalize IDictionary。请试试这个:
[DataContract]
[Serializable]
public class CustomException : Exception
{
IDictionary _iDictionary;
[DataMember]
public override IDictionary Data
{
get
{
if (_iDictionary == null)
{
_iDictionary = base.Data;
}
return _iDictionary;
}
}
}