我想序列化一个源自Exception
的{{1}}和XmlSerializer
的类。我的问题是我想在序列化时忽略异常类的一些字段。
我知道我通常可以使用属性执行此操作,但是我没有异常类的源,因此我无法添加属性。有没有办法告诉序列化程序不要序列化异常类的某些字段?
请注意,我需要二进制和XML序列化的解决方案。
答案 0 :(得分:1)
我认为您正在寻找的答案由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);
}
答案 1 :(得分:0)
如何序列化类:
public class ExceptionSerializer {
private readonly Exception _Ex;
public serializableException(Exception e) {
_Ex = e;
}
[Flag_you_want_here]
public SerializableMessage { get{ _Ex.Message;} }
}
这可能是个主意吗?