0

我尝试按照http://blogs.msdn.com/b/donsmith/archive/2006/10/06/handcrafting-wcf_2d00_friendly-wsdls.aspx的指导来创建 WCF svcutil 将相信的 WSDL文档/文字包装格式。这样做时,svcutil 应该在 C# 中生成一个服务接口和代理代码,该代码使用数据协定序列化程序,以及包装器操作上的 OperationContractAttributes。相反,我得到了一个奇怪的双重包装,其中 BlahResponse1 类嵌套在 BlahResponse 类中,svcutil 告诉我 WSDL 没有包装,它将创建 MessageContracts 而不是 OperationContracts。

为了服务使用者的代码可读性,我想去掉 BlahResponse1 类,并让 svcutil 相信 WSDL 已包装。如何做到这一点?也许还有,一个人怎么不这样做?

我已经看到建议在架构中的一些但不是所有元素上设置 nillable="true" ,这些元素将成为数据合同。哪个应该是可空的,为什么?是否需要有不可为 nillable 的元素,设置 nillable="true" 是不好的?

如上面的链接所示,我尝试将架构划分为两个命名空间,但这似乎不起作用(或者被另一个问题掩盖了)。关于模式命名空间、导入与包含以及声明顺序有什么重要的吗?

我会包括模式/WSDL,但它们是专有的。此外,非常大并且分布在许多文件中。

4

1 回答 1

1

XMLSpy 使用默认名称“参数”创建消息部分。这几乎是 .NET svcutil.exe 自动生成数据合约和操作合约所需的。Svcutil.exe 需要将所有消息部分命名为“参数”(注意末尾添加的“s”)。

于 2012-06-30T19:38:08.517 回答