1

プロジェクトで wcf サービスを作成し、別のプロジェクトでサービス参照を追加すると、見たものの背後で何が起こるか知りたいだけです。つまり、メモ帳ファイルにサービス コードを記述し、コマンド ラインを使用して svcutil.exe を実行しています。私の質問は、メタデータをエクスポートおよびインポートするために、両方の側 (サービス側とクライアント側) で svcutil を実行する必要がありますか? また、svcutil.exe によって生成されるファイルは最小限です。

友よありがとう。

4

1 に答える 1

3

SvcUtilプロキシ クラスと、サービスが使用するバインディング、セキュリティ資格情報、読み取りクォータ、サービスのアドレス、コントラクトなどを指定する構成ファイルSvcUtilが生成され、メタデータ、シリアル化コードなどが生成されます。サービス マシンで実行するSvcUtilと、提供される 2 つのファイル (プロキシ クラスと構成ファイル) を使用して、異なるマシンでクライアントを作成できます。

通常、これらは Visual Studio の「サービス参照の追加」機能によっても生成されるため、実際に SvcUtil を使用する必要はありません。Visual Studio は実際にはSvcUtilバックグラウンドでクライアント プロキシを生成するために使用するため、クライアント プロキシの生成に Visual Studio を使用する方が少し面倒ではないようです。

SOA の用語では、SvcUtil または Visual Studio を使用して手動でクライアントを生成することは、これらの etools が結合しすぎて不要なコードを生成し、柔軟性があまり得られないため、良い方法ではないと主張する人もいます。サービス、契約、プロキシなどのアセンブリを分離し、ChannelFactoryクラスを使用してサービス チャネルを作成できます。この素晴らしい記事は、クライアント プロキシを生成する後者の方法の支持者です。

于 2012-05-18T08:48:54.257 に答える