1

2008年に誰かがクライアント側の動作のプロキシ生成について尋ねた質問を繰り返したいと思います。add-service-referenceダイアログで「discover」を実行するときに、サービスコントラクトまたは操作の属性として装飾されたカスタムクライアント側の動作がVisual Studio(またはsvcutil)によって「確認」されるようにしたい。その結果、クライアント側の動作(およびアセンブリ参照)が自動的に追加されたプロキシになります。

この機能は、VS2010SP1の時点ではまだ利用できないようです。VS 2012はそれを行いますか?それを行うサードパーティのツールはありますか?

ps明確にするために、私はWSDL機能の拡張について質問していません。上記のトリックがそのために機能するとは思わない。私は、VisualStudioの組み込みプロキシ生成機能内の「検出」ボタンのコンテキストで厳密に話しています。

4

1 に答える 1

0

svcutil / addサービス参照を使用できるかどうかはわかりませんが、代わりに.NET FrameworkにはMetadataResolverというクラスがあり、実行時にMEX/wsdlエンドポイントから構成を取得できます。

具体的には、Resolveメソッドを呼び出すとServiceEndpointCollectionインスタンスが返されます。ServiceEndpointには、サービスで定義された動作のコレクションを返すBehaviorsプロパティがあります。

この場合、属性でクラスを装飾する代わりに、サービスを呼び出して動作を取得します。これには、クライアントとサーバーの構成を1か所(サービス)で定義し、それらの同期を維持できるという利点があります(クライアントでもサービス構成の更新を行う必要があるのとは対照的です)。欠点は、サービスを呼び出すときに2つの呼び出しを行うようになり(これまでは静的インスタンスを作成し、Resolveメソッドからの応答をメモリに保持することで軽減しましたが)、サービスのメタデータを公開する必要があることです。

于 2012-10-26T15:30:48.390 に答える