私はStackOverFlowに投稿した前の質問に続いて、私はPrismデスクトップアプリケーションに以下のプロジェクト構造を持っています。PrismデスクトップアプリケーションのUnity依存関係の解決
クラスライブラリ:Application.Common - >これはすべて私のDTOと全く別のソリューションである私のWCFサービス層で定義されているサービス契約が含まれています。
モジュール:Application.Modules.ServicesModule - >ここで私はサービス参照の追加]を使用して、私のWCFの実装へのリンクを追加しました。初期化の方法は、以下のように見えるので、私もApplication.Commonアセンブリで定義されているIMyServiceContract私のタイプの実装を登録します - 最後に
public void Initialise()
{
_container.RegisterType<IMyService, MyServiceClient>(new InjectionConstructor());
}
私は別のモジュールにApplication.Modules.FunctionalityModuleを持っている、これは定義されたコンストラクタを持っています
public FunctionalityModule(IMyService myService){}
アプリケーションが実行時にFunctionalityModuleに依存関係を解決しようとすると、次のエラーが
を発生し、次のように10通常、依存関係は登録されていないが、この場合、ServicesModuleにあることが分かっているため、このエラーが発生しています。これは異なるモジュールに登録することと関係していますか? PrismデスクトップアプリケーションでWCFサービスをサポートするためにプロジェクト構造をどのように実装できるかについて、他に提案はありますか?
おかげ
アレックス
編集: 私はサービス参照の追加]を使用しているとき、私は問題を抱えていた私のサービス契約を定義するための一般的なアセンブリを使用していたとして。 Add Service Referenceを使用すると、生成されたコードがメタデータを使用してクライアント側の型を作成することが分かります。これらは、共通アセンブリ内のシグネチャと同じシグネチャを持ちますが、異なるものです。私がCommon Assemblyで契約を使用できるようにするために、私はこのポストhttp://xaml.geek.nz/working-slightly-smarter-with-wcfからインスピレーションを受けました。これは正しい方向に私を始めましたが、コードをプロダクション環境にもっと適したものにする必要があります。
あなたはServicesModuleがロードされていますか? FunctionalityModuleの前にロードされていますか? –
はい、ServicesModuleのInitialiseをブレークポイントすると、確実にヒットします。また、ServicesModuleはBootstrapperのFunctionalityModuleの前にあるので、前にロードされていることを前提としています。 – lostinwpf
ServicesModuleの_containerインスタンスはどこから来ますか?それはそのコンストラクタを通じて注入されているのか、モジュール内でインスタンス化されていますか? –