2

私はデモプリズムアプリケーションを作成して遊んでいます。私が持っているアプリケーションには、シェル プロジェクトと、プリズム サービスとビュー (およびビュー モデル) を持つ別のモジュールがあります。(主に Mike Taulty のビデオに基づいていますが、Silverlight ではなく WPF に基づいています)。

自分の Web サービスを呼び出すように、prism-service をセットアップしました。セットアップはすべて正しいように見えましたが、このコードを呼び出すと:

 MyServiceReferenceClient myServiceReferenceClient = new MyServiceReferenceClient();

このエラーが発生しました:

ServiceModel クライアント構成セクションで、コントラクト 'MyServiceReference.IMyService' を参照する既定のエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素に見つからなかったためである可能性があります。

エラーをグーグルで調べたところ、app.config の内容をシェル プロジェクトに入れる必要があることがわかりました。

そのファイルをシェル プロジェクトにコピーしたところ、問題なく動作しました。

しかし、私はこれが好きではありません。プリズムの考え方は、モジュール化することです。モジュールで呼び出されるすべての Web サービスへの参照が必要な場合、シェルは各モジュールの内部動作について必要以上に知る必要があります。

モジュールで Web サービスを呼び出し、シェルが知る必要があるのはリージョンだけであり、(構成ファイルを介して) モジュールのクールな Prism の利点を引き続き利用する方法はありますか?

4

1 に答える 1

2

この投稿は、あなたがしたのと同じ方法で問題を解決します: http://blogs.southworks.net/matiasb/2009/06/20/how-to-consume-wcf-services-from-composite-application-guidance- for-wpf-and-silverlightprism-v2-modules/ . さらに、おっしゃったように、モジュールについて知る必要のない情報をシェルが認識しないように、モジュール内でプログラムで WCF を構成することをお勧めします。

于 2010-10-25T12:25:06.783 に答える