如果类在集合中,我需要阻止它被序列化,因为我无法控制返回集合的父类属性。不实现 ISerializable 有什么解决办法吗?
public class NonControllable{
Collection children;
}
public class MyClass : NonControllable {
// NEED TO STOP Serializing children property.
}
最佳答案
因为你有 [xml] 标签,你会想要(在父级别):
[XmlIgnore]
public Foo Bar {...}
但是,您无法在类型级别控制它。公开成员的类型必须对其进行定义。
另一种方法是在创建 XmlSerializer
时使用 XmlAttributeOverrides
。
请注意,ISerializable
对 xml 序列化没有影响;您将需要 IXmlSerializable
,这(IMO)难以稳健地实现。
关于C# 停止类序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880616/