使用默认属性的DataContractSerializer

本文关键字:DataContractSerializer 属性 默认 | 更新日期: 2023-09-27 18:23:56

最近,当我阅读DataContractSerializer的默认行为时,我从MSDN获得了规则,但我不理解我提取的第一条规则,如下所示:

DataContractSerializer使用新创建的类型的默认属性,从没有属性的类型中推断数据约定。

我该如何解释这句话,如果有人有明确的想法,你能帮忙吗?我知道"没有属性",属性的意思是DataContract属性,但"默认属性"指的是什么。在自定义类型中有什么叫做"默认特性"的东西吗?

使用默认属性的DataContractSerializer

如果在另一个具有[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"。

相关文章:
  • 没有找到相关文章