限制框架在c#NetCore中的SOAP xml消息中添加可选标记

限制框架在c#NetCore中的SOAP xml消息中添加可选标记,c#,wcf,soap,.net-core,xmlserializer,C#,Wcf,Soap,.net Core,Xmlserializer,我正在开发一个RESTWebAPI,它使用SOAP WS查询发票信息。我使用SoapUI进行测试,得到了正确的信息。但是从我的webapi调用自动生成的方法时,请求包含所有带有默认值的可选属性 我尝试了很多方法,唯一有效的方法是从自动生成的方法中删除所有可选属性,这证明了默认值是问题所在,但如果我想将它们添加为过滤器,以便从另一个调用中获取特定发票,我可能需要它们。 我还尝试为每个可选的属性添加一个布尔属性,如这里提到的“propertyNameSpecified”:但是信息仍然存在,即使这些属

我正在开发一个RESTWebAPI,它使用SOAP WS查询发票信息。我使用SoapUI进行测试,得到了正确的信息。但是从我的webapi调用自动生成的方法时,请求包含所有带有默认值的可选属性

我尝试了很多方法,唯一有效的方法是从自动生成的方法中删除所有可选属性,这证明了默认值是问题所在,但如果我想将它们添加为过滤器,以便从另一个调用中获取特定发票,我可能需要它们。 我还尝试为每个可选的属性添加一个布尔属性,如这里提到的“propertyNameSpecified”:但是信息仍然存在,即使这些属性都是false

以下是WS的WSDL: 方法是consultarcompobantes,它获取类型为consultarcompobantesrequest的对象。我可以提供代码,但所有这些都是通过VisualStudio的附加服务自动生成的,如果您仍然需要它,请告诉我


当我知道有一张发票(我生成了它)并且可以通过SoapUI查看它时,结果是一个空数组,请求中没有可选参数(或正确的参数以获取此特定发票)

我通过删除所有可选成员来修改代理类。如果我重新生成代理类,解决方案将不再工作,但只要我不这样做,它就可以了。 每当我需要在消息中发送一个可选成员时,我只需生成一个新类,该类从只包含可选参数的类继承,并在新类中定义我需要的可选成员。
代理方法可以处理新类的实例,因为它的继承性没有问题,所以不需要转换。

阅读了您的问题后,我仍然无法理解您想要表达的内容。简单地说,您可以通过使用SOAPUI发送请求,同时使用客户端代理类调用服务来获得正确的响应。使用SoapUI,我只发送必须发送的xml标记。调用自动生成的类时,所有“可选”标记都会使用默认值完成,因此请求会通过过滤器发送,因此答案不正确。我还尝试将所有其他成员设置为null,并将其设置为null,但也会使用null发送,并且响应是请求中null字段的格式错误。