WCF-カスタマイズされたWDSL生成
-
29-10-2019 - |
質問
結果なしで、WSDL生成でいくつかのカスタマイズを行おうとしていました。 私は主に私がやりたいことのために明確なサンプルを見つけることができなかったので、主に立ち往生しました(私は何かを逃したかもしれません)。
ポイントに着手しましょう。カスタマイズをカスタマイズしたい。生成されたWSDL。 私が見つけた最も関連性のある記事は、行動を追加するために既存のサービスに属性を追加することです、
解決
必要なのはIWsdlExportExtension.ExportContract
を実装することですが、ドキュメントには次のように明記されています:
ExportContractメソッドが呼び出されます メタデータエクスポートシステムが 契約のエクスポート。契約のみ および操作動作の実装 IWsdlExportExtensionは ExportContract呼び出し。すべての行動 IWsdlExportExtensiongetの実装 ExportEndpoint呼び出し。
私にとって、このメソッドは、通常カスタム属性によって定義されるコントラクトまたは操作動作によって実装された場合にのみ呼び出されることを意味しますが、カスタム初期化でこれらの動作を割り当てることもできるはずです。
これが例です構成ファイルから構成されたエンドポイントのWSDL拡張機能の(構成はサービス全体とエンドポイントの動作のみを提供します)。私はあなたが以下からなる同様の拡張を行うことができると信じています(しかしそれをテストしませんでした):
- 操作または契約の動作は、
IWsdlExportExtension
およびExportContract
を実装しますIEndpointBehavior
とApplyDispatchBehavior
を実装するエンドポイントの動作。ApplyDispatchBehavior
では、serviceEndpoint.Contract.Behaviors
を使用してコントラクト動作を追加するか、serviceEndpoint.Contract.Operations[x].Behaviors
を使用して操作動作を追加します。- 構成ファイルから新しいエンドポイントの動作を定義するための同様の
BehaviorExtensionElement
を作成します。
所属していません StackOverflow