C# 阻止类序列化
如果类在集合中,我需要阻止它被序列化,因为我无法控制返回集合的父类属性。如果不实现ISerializable,有什么解决方案吗C# 阻止类序列化,c#,xml,serialization,C#,Xml,Serialization,如果类在集合中,我需要阻止它被序列化,因为我无法控制返回集合的父类属性。如果不实现ISerializable,有什么解决方案吗 public class NonControllable{ Collection children; } public class MyClass : NonControllable { // NEED TO STOP Serializing children property. } 只需将属性标记为不可序列化的属性,序列化就不会发生 参见下面的示例
public class NonControllable{
Collection children;
}
public class MyClass : NonControllable {
// NEED TO STOP Serializing children property.
}
只需将属性标记为不可序列化的属性,序列化就不会发生 参见下面的示例
public class MyClass : NonControllable {
// Property that is not serialized.
[NonSerialized()]
public string myProperty;
}
只需将属性标记为不可序列化的属性,序列化就不会发生 参见下面的示例
public class MyClass : NonControllable {
// Property that is not serialized.
[NonSerialized()]
public string myProperty;
}
由于您有[xml]标记,因此您希望在父级:
[XmlIgnore]
public Foo Bar {...}
但是,您无法在类型级别控制此操作。公开成员的类型必须定义它
另一种方法是在创建XmlSerializer时使用XmlAttributeOverrides
注意,ISerializable对xml序列化没有影响;您需要IXmlSerializable,这是一个很难实现的问题。因为您有[xml]标记,所以您希望在父级:
[XmlIgnore]
public Foo Bar {...}
但是,您无法在类型级别控制此操作。公开成员的类型必须定义它
另一种方法是在创建XmlSerializer时使用XmlAttributeOverrides
注意,ISerializable对xml序列化没有影响;您需要IXmlSerializable,这是一个很难实现的问题。非序列化和可序列化属性与XML序列化无关无法使用上述属性,因为父类中已存在属性。非序列化和可序列化属性与XML序列化无关无法使用上述属性,因为属性已存在在父类中