1

我想序列化一个派生自ExceptionwithXmlSerializer和的类BinaryFormatter。我的问题是我想在序列化时忽略异常类的一些字段。

我知道我通常可以使用属性来执行此操作,但我没有异常类的来源,因此我无法添加属性。有没有办法告诉序列化器不要序列化异常类的某些字段?

请注意,我需要二进制和 XML 序列化的解决方案。

4

2 回答 2

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);
}
于 2013-08-05T14:35:55.340 回答
0

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 ?

于 2013-05-25T14:48:55.713 回答