3

我正在与一个我无法控制的 Web 服务进行交互,它具有包含句点 (.) 的消息(输入/输出)和操作

当 svcutil 生成代理时,它包括:

[MessageContractAttribute(WrapperName="The.Request",...)]
public partial class TheRequest
{ ... }

[MessageContractAttribute(WrapperName="The.Response",...)]
public partial class TheResponse
{ ... }

哪个模型的 WSDL:

<wsdl:message name="The.Request">
    <wsdl:part name="Input" type="tns:InputType" />
</wsdl:message>
<wsdl:message name="The.Response">
    <wsdl:part name="Return" type="tns:Return" />
</wsdl:message>

运行代码时,我收到一条错误消息:

RPC Message TheRequest in operation DoIt has an invalid body name Input. It must be TheRequest

堆栈跟踪:

在 System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.OperationReflector.EnsureMessageInfos() 在 System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.EnsureMessageInfos() 在 System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.OperationReflector.get_Request() 在 System.ServiceModel .Description.XmlSerializerOperationBehavior.CreateFormatter() at System.ServiceModel.Description.XmlSerializerOperationBehavior.System.ServiceModel.Description.IOperationBehavior.ApplyClientBehavior(OperationDescription description, ClientOperation proxy) at System.ServiceModel.Description.DispatcherBuilder.BindOperations(ContractDescription contract, ClientRuntime proxy, DispatchRuntime 调度)在 System.ServiceModel.Description.DispatcherBuilder。ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime clientRuntime) at System.ServiceModel.Description.DispatcherBuilder.BuildProxyBehavior(ServiceEndpoint serviceEndpoint, BindingParameterCollection& parameters) at System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint serviceEndpoint, Boolean useActiveAutoClose) at System.ServiceModel.ChannelFactory.CreateFactory ()

……

我找不到更改验证以接受消息名称的方法。

任何人都可以告诉我该怎么做,或者至少可以为我指明正确的方向吗?

谢谢。

4

0 回答 0