在序列化期间忽略一个或多个字段

时间:2013-05-25 13:32:59

标签: c# xml serialization binary

我想序列化一个源自Exception的{​​{1}}和XmlSerializer的类。我的问题是我想在序列化时忽略异常类的一些字段。

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

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

2 个答案:

答案 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;} }

}

这可能是个主意吗?