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

问题描述 投票:0回答:1

我正在使用REST Webapi,该Webapi使用SOAP WS来查询发票信息。我正在使用SoapUI进行测试,并且获得了正确的信息。但是从我的webapi中,当调用自动生成的方法时,请求包括所有带有默认值的可选属性。

我尝试了很多事情,唯一有效的方法是从自动生成的方法中删除所有可选属性,这证明了默认值是问题所在,但是如果我想将它们添加为过滤器以从中获取特定发票,可能会需要它们另一个电话。我还尝试过为每个带有“ propertyNameSpecified”的可选对象添加一个布尔属性,如下所示:https://docs.microsoft.com/en-us/dotnet/api/system.xml.serialization.xmlserializer?view=netframework-4.8但即使该属性全为false,信息也在那里。

这里是WS的WSDL:https://fwshomo.afip.gov.ar/wsfecred/FECredService?wsdl该方法是ConsultarComprobantes,它获取类型为objectar的对象:ConsultarComprobantesRequest。我可以提供代码,但是所有这些都是通过Visual Studio的附加服务自动生成的,如果您仍然需要它,请告诉我。

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

c# wcf soap .net-core xmlserializer
1个回答
0
投票

我通过消除所有可选成员来解决此修改代理类的问题。如果我重新生成代理类,该解决方案将不再起作用,这不是理想的选择。每当我需要在消息中发送可选成员时,我都会简单地生成一个新类,该类从仅带有可选参数的类继承,并定义子级中我需要的任何可选成员。代理方法可以与新类的实例一起工作,继承关系没有问题,因此不需要转换。

© www.soinside.com 2019 - 2024. All rights reserved.