問題タブ [operationcontract]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wsdl - OperationContractAttribute.Action 値はどのように設定されますか?
サード パーティから提供された WSDL ファイルを使用してプロキシ クラスを作成するために、Visual Studio の [サービス参照の追加] オプションを使用しています。私は WSDL の 2 つのバージョンを取得しました。それらを「OLD」と「NEW」と呼びます。
WSDL ファイルは同じであると思われますが (新しいファイルはメソッドのバージョンが更新されています)、プロキシ クラスを作成すると、OperationContractAttribute.Action で異なる値が取得されます。
OLD wsdl では、次のようになります。
新しい wsdl では、次のようになります。
「アクション」値がどこから取得されたのかわかりません。
古い WSDL では値は有効ですが、新しい WSDL では完全に間違っており、WS でサービスを使用しようとすると例外が発生します。
OLD wsdl ファイルを見ると、同じ値の「soapAction」が表示されます。ここから取られているようです。ただし、NEW wsdl には、OLD wsdl とまったく同じ値があります。
誰か私に正しい場所を教えてもらえますか?
アップデート
「アクション」要素についてさらに読んだ後、新しい wsdl に表示される値が DEFAULT 値であることに気付きました ( https://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.アクション (v=vs.110).aspx )
ここで、古い wsdl ファイルで Action 値が正しい値になる理由を理解する必要があります (正しい操作で wsdl ファイルで定義されたsoapActionから推測しています)。デフォルト値は設定されていますか?
xml - OperationContract 名前空間から継承された DataContract へのプレフィックスの変更
FORMULARIO のプレフィックス (Tem: TO Men1:) を次の XML から変更する必要があります。
問題は、Namespace Base をオーバーライドするために Namespace を OperationContract に設定できないことです。この追跡では、OperationContract は Xml の DataContract の親です。
私のコードは次のとおりです。