c# - DataContract 不使用属性中指定的名称属性

标签 c# serialization rest xml-serialization wcf

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

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

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

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

}

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

<ASerCollection>
<ColElem />
</ASerCollection>

我将此作为 WCF 服务的一部分进行。如果我可以采取不同的方式来强制使用我的数据契约(Contract)的“名称”属性,请告诉我。

谢谢

最佳答案

这是因为:

  • XMLRootAttribute 由 XmlSerializer 使用
  • DataContractAttribute 由DataContractSerializer 使用

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

这里有几个链接:

希望对您有所帮助。

关于c# - DataContract 不使用属性中指定的名称属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899557/

相关文章:

java - 如何在过滤器方法中使用 ContainerRequestContext 获取 REST api 的有效负载

c# - 作为依赖项和不同的 publicKeyTokens 共享时的 RestSharp 错误

c# - 在 .net C# 中替换 char 并转换为大写的正则表达式

c# - 从嵌套 Foreach 中的 Observable 集合中删除项目

django - 如何使用模型字段过滤 serializers.SlugRelatedField 查询集

java - 实现可序列化接口(interface)的类对象上的 JVM 行为

c# - Azure 云服务项目在调试时在启动时打开两个浏览器窗口

c# - 结构的快速序列化/反序列化

RESTful 设计 : return an empty object as a template for create new form

javascript - javascript中的JSON解析问题