1

セットアップ:過去1年間で、社内の特定のタスクを処理するために使用される約20の一般的なWCFサービスを作成しました。開発者は、これらの特定のタスクを実行するために、アプリケーションでこれらのサービスをすぐに使用し始めています。問題は、現在、これらの一般的なサービスの使用を強制する立場が会社にないためです(小さな会社であり、標準を強制するためのリソースまたは帯域幅がまだないため、この問題が発生する前に解決したいと考えています悪化または管理不能)一部のチームは、既存の共通サービスがすでに行っていることを機能的に反映する独自のサービスを作成する傾向があります。

この問題を解決するために、特定の機能を実行する一般的なサービス参照(公開されたヘルパーメソッドを含む)を含む「サービスレイヤー」クラスライブラリを構築するだけの基本的なWebアプリケーションを構築しています。たとえば、アプリケーションで部分的な保存とファイルのアップロードを許可する必要がある場合は、ファイルアップロードサービスとフォーム保存サービスへのサービス参照をこのサービスレイヤークラスライブラリに追加します。

質問:
WCFサービス参照のファイルを動的/プログラムで取得し(VS 2010が「サービス参照を追加」する場合とほぼ同じ方法で)、それらをcsprojファイルに追加する方法はありますか?汎用ビルドファイル(csproj)をビルドする方法は知っていますが、必要なものや、そのプロジェクトにサービス参照を追加するための最良の方法がわかりません。

どんな助けでも大歓迎です、そして私はあなたの時間を前もって感謝します。

4

1 に答える 1

1

WCF サービスにアクセスするためにこれらのファイルを生成する必要はありません。VS2010 が行っているのは、コントラクトとデータ オブジェクトのクライアント側のミラー イメージを生成することです。たとえばFoo、サーバーで が定義されている場合、作成された のクライアント バージョンを取得し、生成されたプロキシはそのクライアント側バージョンの に逆シリアル化されますFoo

これらのファイルを生成したい場合は、svcutil.exe を使用して特定のディレクトリにプロキシ ファイルを生成する方法の例について、この以前の SO 回答を参照してください。コントラクトとデータ オブジェクトを別のアセンブリに格納する必要があることに注意してください。そうすると、クライアントとサーバー間で再利用できるようになります。つまり、svcutil はクライアント側のコピーを生成する必要がありません。それらのデータ オブジェクト。

*これは VS のデフォルトの動作であり、変更できることに注意してください。

于 2012-11-19T23:44:13.227 に答える