2012-04-15 11 views
2

私はプリズムナビゲーションAPIの使い方を学んだし、それを登録する必要があなたのViews(またはViewModels場合、最初のViewModelに使用して)次のようにユニティコンテナとは:プリズムナビゲーション:UnityContainerでView/ViewModelsを登録する場所はどこですか?

Container.RegisterType<object, HomeView>("HomeView"); 

this blog postMSDN Documentationを参照してください。私が見た例では、Bootstrapperクラスにこれらの型をConfigureContainer()メソッドで登録しています。しかし、いくつかの例では、クラスをクラスに登録しています。私の質問は:これらのタイプをコンテナにどこに登録するかは重要ですか?

私の直感では、Moduleクラスの登録がこれらのタイプは、それだけでModuleに登録されている意味する一方で、すべてのModulesに登録したタイプが利用できるようになりますBootstrapperConfigureContainer()方法と登録です。

答えて

4

短い回答:いいえ登録する場所を確認できません。

どのライブラリに存在するインスタンスを登録するのが論理的です。統一も少し違う。

例1: ModuleAとModuleBがあり、インフラストラクチャにインターフェイスがあるとします。このインターフェイスをModuleAの実装に登録します。その後、moduleBでこのインスタンスを解決します。あなたはそれがmoduleAで設定されているので、うまくいくでしょう。もしあなたがいないなら、例2があなたのためです。

例2 登録されていないタイプのClassAがあるとします。 bootstrapperまたはmoduleにこれを設定しておらず、このクラスで解決を呼びます。 Unityはこれを自動的にあなたのために行い、それを解決し、もしそれが見つかると依存関係を解決します。 1つの例外があるかもしれません。私はインターフェイスについては分かりませんが、具体的な実装に登録されていないと解決できないと思います。

+0

ありがとうございます!いい答えだ。これは私が起こると思ったものです。 –