我想序列化一个派生自Exception
withXmlSerializer
和的类BinaryFormatter
。我的问题是我想在序列化时忽略异常类的一些字段。
我知道我通常可以使用属性来执行此操作,但我没有异常类的来源,因此我无法添加属性。有没有办法告诉序列化器不要序列化异常类的某些字段?
请注意,我需要二进制和 XML 序列化的解决方案。
我想序列化一个派生自Exception
withXmlSerializer
和的类BinaryFormatter
。我的问题是我想在序列化时忽略异常类的一些字段。
我知道我通常可以使用属性来执行此操作,但我没有异常类的来源,因此我无法添加属性。有没有办法告诉序列化器不要序列化异常类的某些字段?
请注意,我需要二进制和 XML 序列化的解决方案。
我认为您正在寻找的答案由XmlAttributes.XmlIgnore提供,至少对于 XML 序列化。我刚刚使用它,它工作得很好。这是我用来为我的User
类构建一个忽略该UserName
属性的序列化程序的一段代码:
private static XmlSerializer UserSerializer()
{
XmlAttributeOverrides xOver = new XmlAttributeOverrides();
XmlAttributes attrs = new XmlAttributes();
attrs.XmlIgnore = true;
xOver.Add(typeof(User), "UserName", attrs);
return new XmlSerializer(typeof(User), xOver);
}
how about serialising a class like :
public class ExceptionSerializer {
private readonly Exception _Ex;
public serializableException(Exception e) {
_Ex = e;
}
[Flag_you_want_here]
public SerializableMessage { get{ _Ex.Message;} }
}
Could that be an idea ?