【问题标题】:Why are attributes not supported with the DataContractSerializer?为什么 DataContractSerializer 不支持属性?
【发布时间】:2011-08-29 19:16:59
【问题描述】:

我根据客户的文档创建 xsd,所有 xsd 都有属性。我一直在使用 xsd.exe 从 xsd 生成类,但我读到 DataContractSerializer 不支持属性。为什么不?这是否意味着我只能拥有一个只有元素的 soap+xml 文件?这是不可能的,因为我不创建请求。有没有办法指定给 svcutil 识别属性?

【问题讨论】:

  • 你刚刚回答了你自己的问题。
  • @John,怎么样?我不明白为什么不支持它们。

标签: wcf xsd datacontractserializer svcutil.exe


【解决方案1】:

DataContractSerializer 在创建时考虑到了“代码优先”的理念——它可以很好地映射到大多数编程语言(记录、列表),并且它不能处理所有 XML 结构(例如属性,或例如,订单元素)出于性能原因。

WCF (svcutil) 仍然支持使用 XmlSerializer,它可以处理 AFAIK 所有的 XML 结构。如果 DataContractSerializer 无法处理,svcutil 应该使用 XmlSerializer 创建合同。

【讨论】:

  • 有没有例子说明如何指定svcutil 来使用XmlSerializer?
  • 这取决于您使用 svcutil 的选项。例如,在创建代理代码时,可以指定 svcutil /serializer:XmlSerializer。 svcutil /?会给你其他用法。
  • 太棒了。谢谢卡洛斯。讽刺的是,你回答了这个问题。在我来这里之前,我刚从你的博客上来。
猜你喜欢
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多