通过忽略Data属性序列化序列化System.Exception类
本文关键字:序列化 System Exception 属性 Data | 更新日期: 2023-09-27 18:25:15
我正在尝试序列化.Net类库的System.Exception类,但是正如许多成员之前在这里讨论过的那样,该类的Data属性存在问题,因为它实现了IDictionary接口,这使得它不可序列化。
我试图在序列化过程中重写并标记此属性以忽略该问题,但没有成功,我仍然收到相同的错误。
public class CustomException : Exception
{
[IgnoreDataMemberAttribute]
public override IDictionary Data
{
get
{
return base.Data;
}
}
}
我还尝试使用IgnoreXML属性,结果相同,我使用的是XMLSerializer类。
将IDictionary序列化。请尝试这个:
[DataContract]
[Serializable]
public class CustomException : Exception
{
IDictionary _iDictionary;
[DataMember]
public override IDictionary Data
{
get
{
if (_iDictionary == null)
{
_iDictionary = base.Data;
}
return _iDictionary;
}
}
}