質問

結果なしで、WSDL生成でいくつかのカスタマイズを行おうとしていました。 私は主に私がやりたいことのために明確なサンプルを見つけることができなかったので、主に立ち往生しました(私は何かを逃したかもしれません)。

ポイントに着手しましょう。カスタマイズをカスタマイズしたい。生成されたWSDL。 私が見つけた最も関連性のある記事は、行動を追加するために既存のサービスに属性を追加することです、

私がやりたいことは、 optionalcontract を分析し、必要に応じてxsdを生成して追加してください。

私の質問は次のとおりです。

役に立ちましたか?

解決

必要なのはIWsdlExportExtension.ExportContractを実装することですが、ドキュメントには次のように明記されています:

ExportContractメソッドが呼び出されます メタデータエクスポートシステムが 契約のエクスポート。契約のみ および操作動作の実装 IWsdlExportExtensionは ExportContract呼び出し。すべての行動 IWsdlExportExtensiongetの実装 ExportEndpoint呼び出し。

私にとって、このメソッドは、通常カスタム属性によって定義されるコントラクトまたは操作動作によって実装された場合にのみ呼び出されることを意味しますが、カスタム初期化でこれらの動作を割り当てることもできるはずです。 これが例です構成ファイルから構成されたエンドポイントのWSDL拡張機能の(構成はサービス全体とエンドポイントの動作のみを提供します)。私はあなたが以下からなる同様の拡張を行うことができると信じています(しかしそれをテストしませんでした):

  • 操作または契約の動作は、IWsdlExportExtensionおよびExportContractを実装します
  • IEndpointBehaviorApplyDispatchBehaviorを実装するエンドポイントの動作。 ApplyDispatchBehaviorでは、serviceEndpoint.Contract.Behaviorsを使用してコントラクト動作を追加するか、serviceEndpoint.Contract.Operations[x].Behaviorsを使用して操作動作を追加します。
  • 構成ファイルから新しいエンドポイントの動作を定義するための同様のBehaviorExtensionElementを作成します。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top