【问题标题】:DataContract not using Name property specified in attributeDataContract 未使用属性中指定的 Name 属性
【发布时间】:2011-02-04 15:14:14
【问题描述】:

我不知道正在使用什么序列化程序,但在使用 datacontract 属性的 Name 属性时,我在序列化过程中看到一些不一致的行为。

这是我正在做的一个例子:

[XmlRoot(ElementName = "ASerCollection")]
public class SerCollection : List<ColElem>
{
}

[DataContract(Name = "SomethignElse", Namespace = "")]
public class ColElem
{

}

我遇到的问题是序列化正在生成类似于以下 XML 的内容:

<ASerCollection>
<ColElem />
</ASerCollection>

我将其作为 WCF 服务的一部分。如果我可以采取不同的措施来强制使用我的数据合同的“名称”属性,请告诉我。

谢谢

【问题讨论】:

    标签: c# serialization rest xml-serialization wcf


    【解决方案1】:

    这是因为:

    • XMLRootAttribute 被 XmlSerializer 使用
    • DataContractAttribute 被 DataContractSerializer 使用

    一个人不了解另一个人的属性。 根据您要执行的操作以及类之间的关系,我认为您应该阅读如何指导上述序列化程序并选择适合需求的序列化程序。

    这里有几个链接:

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-04
      • 2013-08-31
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2018-11-18
      • 2011-11-18
      相关资源
      最近更新 更多