私は制御できない 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() System.ServiceModel.Description.XmlSerializerOperationBehavior.System.ServiceModel.Description.IOperationBehavior.ApplyClientBehavior (OperationDescription の説明、ClientOperation プロキシ) で System.ServiceModel.Description.DispatcherBuilder.BindOperations (ContractDescription コントラクト、ClientRuntime プロキシ、 System.ServiceModel.Description.DispatcherBuilder で DispatchRuntime ディスパッチ)。System.ServiceModel.Description.DispatcherBuilder.BuildProxyBehavior(ServiceEndpoint serviceEndpoint, BindingParameterCollection& parameters) での ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime clientRuntime) System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint serviceEndpoint, Boolean useActiveAutoClose) で System.ServiceModel.ChannelFactory.CreateFactory ()
....
メッセージ名を受け入れるように検証を変更する方法が見つかりません。
誰かが私に何をすべきか、または少なくとも正しい方向に私を向けることができますか?
ありがとう。