使用默认属性的DataContractSerializer
本文关键字:DataContractSerializer 属性 默认 | 更新日期: 2023-09-27 18:23:56
最近,当我阅读DataContractSerializer的默认行为时,我从MSDN获得了规则,但我不理解我提取的第一条规则,如下所示:
DataContractSerializer使用新创建的类型的默认属性,从没有属性的类型中推断数据约定。
我该如何解释这句话,如果有人有明确的想法,你能帮忙吗?我知道"没有属性",属性的意思是DataContract属性,但"默认属性"指的是什么。在自定义类型中有什么叫做"默认特性"的东西吗?
如果在另一个具有[DataContract]
属性的类中引用了类型,则DataContractSerializer将序列化引用的类型,即使该类型未使用[DataContract]
进行属性化。序列化将发生在所有公共属性上,除非该属性具有[IgnoreDataMember]
属性。
例如:
[DataContract]
public class ClassA
{
public ClassB MyData { get; set; }
public string SomeString { get; set; }
public int SomeNumber { get; set; }
}
public class ClassB
{
public string SomeOtherInfo { get; set; }
public int SomeOtherNumber { get; set; }
}
在上面的代码中,ClassB将根据其默认属性进行序列化,在本例中,这些属性是所有公共属性:"SomeOtherInfo"answers"SomeOtherNumber"。