这个问题与这个问题非常相似:并非WCF数据协定中的所有参数都通过web服务调用实现然而,那里提供的答案并没有解决我的问题。
这是我的服务代码:
使用系统。运行时。系列化;使用系统。服务模型;命名空间SoapUiToWcf{[服务合同]公共接口IWcfTest{【运营合同】WcfData返回请求(WcfData WcfData);}[数据合同]公共类WcfData{[数据成员(顺序=1)]公共WcfDataNested NestedData{get;set;}公共类WcfDataNested{[数据成员(顺序=2)]公共字符串Foo{get;set;}[数据成员(顺序=3)]公共字符串Bar{get;set;}}}公共类WcfTest:IWcfTest{公共WcfData ReturnRequest(WcfData WcfData){return wcfData;}}}
服务应该返回发送给它的相同数据。当我通过发送请求时肥皂用户界面有了下面的数据,一切正常,我得到了所有已发送的值:
<soapenv:Envelope><soapennv:Header/><soaphenv:Body><tem:ReturnRequest><tem:wcfData><soap:NestedData><soap:Bar>Bar</soap:Bar><soap:Foo>Foo</soap:NestedData></tem:wcfData></tem:ReturnRequest></soapenv:Body>
但如果我换了酒吧
-和富
-字段中,wcf服务只接收foo-value,另一个为null:
<a:Bar i:nil=“true”/><a:Foo>Foo
编辑
屏幕截图1(SoapUI中的请求和响应):![在此处输入图像描述](https://i.sstatic.net/ycfo6.jpg)
屏幕截图2(在Visual Studio中调试):![在此处输入图像描述](https://i.sstatic.net/groKY.jpg)
为了不依赖于请求中字段的排序顺序,我必须如何实现wcf服务?