gpt4 book ai didi

c# - 使用默认属性的 DataContractSerializer

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:51 25 4
gpt4 key购买 nike

最近,当我阅读 DataContractSerializer 的默认行为时,我得到了 rules来自 MSDN,但是我不明白我提取的第一条规则如下:

The DataContractSerializer infers a data contract from types without attributes using the default properties of the newly created types.

我如何解释这句话,如果有人有明确的想法,你能帮忙吗,我知道“没有属性”,属性意味着DataContract属性,但是“默认属性”指的是什么。自定义类型中是否有所谓的“默认属性”?

最佳答案

如果您在另一个具有 [DataContract] 属性的类中引用了类型,那么 DataContractSerializer 将序列化引用的类型,即使它没有被 [DataContract] 属性化.序列化将发生在所有公共(public)属性上,除非该属性具有 [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 将根据其默认属性进行序列化,在本例中为所有公共(public)属性:“SomeOtherInfo”和“SomeOtherNumber”。

关于c# - 使用默认属性的 DataContractSerializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33880352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com