模式优先WCF开发
众所周知,如何创建“合同优先”WCF服务,其中第一步是定义模式优先WCF开发,wcf,xsd,wsdl,Wcf,Xsd,Wsdl,众所周知,如何创建“合同优先”WCF服务,其中第一步是定义ServiceContracts和DataContracts 如果一个人拥有“模式优先”,那么他应该如何进行WCF开发。换句话说,已经独立开发了XSD模式。服务不能偏离已定义的模式。复杂的是,模式可能会使用无法转换为DataContract的特性(毕竟DataContract的功能非常小) 在服务器端或客户端为整个文档使用XDocument。(使用XDocument比任何涉及XmlSerializer的东西都更受欢迎,不幸的是,如果不更换
ServiceContract
s和DataContract
s
如果一个人拥有“模式优先”,那么他应该如何进行WCF开发。换句话说,已经独立开发了XSD模式。服务不能偏离已定义的模式。复杂的是,模式可能会使用无法转换为DataContract
的特性(毕竟DataContract
的功能非常小)
在服务器端或客户端为整个文档使用XDocument
。(使用XDocument
比任何涉及XmlSerializer
的东西都更受欢迎,不幸的是,如果不更换,它似乎已经不受欢迎了)。要求元数据/WSDL根据标准正确报告实际模式。它可能不会报告诸如xsd:any之类的“通用”模式。(弄清楚如何处理这些WSDL需求是给我带来最大麻烦的部分。)
(此处类似的问题/答案不涉及
XDocument
或WSDL要求。)如果您已经拥有XSD,那么这些问题/答案与WCF接口之间唯一缺少的链接就是WSDL。一旦有了WSDL,就可以使用svcutil.exe生成带有所需属性的WCF接口和类
你可以用硬方法来做,用手工写WSDL,但是你也要考虑这个工具。
谢谢,但是这使用Stask.xML.序列化,我更不想使用它。XmlSerializer似乎是WCF互操作性的一个重要组成部分,但MS似乎对进一步增强它不感兴趣(我在这里寻找的是一种使用XDocument的方法,并且仍然可以获得我期望从服务返回的WSDL元数据。实际上,WCF默认情况下将使用DataContractSerializer,这与XmlSerializer完全不同。它通常经过优化,速度更快,使用特定的“选择加入”(而不是选择退出)模型,但有其他限制(例如,不支持序列化XML中的属性)。如果您的架构与DataContract序列化程序不兼容,我会说,您将遇到麻烦。您在架构中使用的哪些功能不受DataContract序列化程序支持?许多.XML属性就是其中之一。例如。