在什么情况下,svcutil.exe决定在生成的代理代码中应用XmlSerializerFormatAttribute?

时间:2013-01-14 10:54:35

标签: c# wcf xml-serialization svcutil.exe

在标题中,svcutil.exe决定在生成的代理代码中应用XmlSerializerFormatAttribute。我找不到任何关于这方面的文档,所以我很感激链接一些来源。

2 个答案:

答案 0 :(得分:3)

只要Web服务的架构与DataContractSerializer不兼容,就会选择XmlSerializer(并应用XmlSerializerFormatAttribute)。正如用户“Aphelion”在他们的回答中指出的那样,可能发生这种情况的一个案例是使用一些传统的ASMX Web服务。但是,在与非.NET服务(例如,基于Java)进行互操作时,这也很常见。这里的权威文档实际上是http://msdn.microsoft.com/en-us/library/ms733112.aspx,它可以准确地告诉您模式中支持和不支持的内容。

答案 1 :(得分:2)

XmlSerializerFormat用于支持向后兼容ASMX(经典Web服务)。

默认情况下,代理将使用DataContractSerializer。如果WSDL文档中的架构元素使用DataContractSerializer无法处理的XSD架构功能,它将选择XmlSerializer


我可以推荐Michele Leroux Bustamante撰写的“Learning WCF”作为一些深入的例子。