1

MSMQ トランスポートを使用する WCF サービスのほとんどの例では、単純にサービス参照を追加するよりも、Visual Studio コマンド プロンプトで svcutil を使用して手動でプロキシを作成することを常にお勧めします。Visual Studio の [サービス参照の追加] ダイアログにエンドポイント アドレスを指定するだけでサービスを参照できるのに、なぜ VS コマンド プロンプトでプロキシを作成する必要があるのでしょうか (少し手間がかかるため)。WCF 4 Step by Stepを読んでいるときに、これに出くわしました:

Visual Studio のサービス参照の追加ウィザードを使用して、MSMQ トランスポートを使用する WCF サービスへの参照を簡単に追加できないことに注意してください。

なぜそれが難しいのですか?WCF サービスを参照する前の方法の利点 (ある場合) は正確には何ですか? プロキシを手動で作成すると、タスクが不必要に複雑になるだけのように思えます。

4

1 に答える 1

1

サービス インターフェイス、操作、およびデータ コントラクトを定義するアセンブリへの参照がある限り、プロキシを事前に生成する必要はありません。その後、ChannelFactory を使用してその場でプロキシを作成できます。

var factory = new ChannelFactory<IMyServiceInterface>("MyServiceNameInAppConfig");
var proxy = factory.CreateChannel();

これは、svcutil を使用するよりもはるかに簡単です。ただし、サービスがリモートであり、型アセンブリにアクセスできない場合は、プロキシを生成するしかありません。

VS の代わりに svcutil を使用してプロキシ コードを生成する方が簡単な理由についての質問については、実際の本を見ずにコメントするのは難しいですが、フードの下では、とにかくビジュアル スタジオが svcutil を使用してコードを生成するため、わかりませんそれがどのように良くなったり悪くなったりするか。これを手動で行うと、生成されるものをより細かく制御できると思います。

于 2012-01-01T12:44:49.570 に答える