2

Prism Navigation APIの使用方法を学習しています。次の方法で、UnityコンテナーにViews(またはViewModelsViewModel-firstを使用している場合は)登録する必要があります。

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

このブログ投稿MSDNドキュメントを参照してください。私が見た例では、メソッドを介してこれらのタイプをBootstrapperクラスに登録しています。ConfigureContainer()しかし、いくつかの例はModuleクラスにタイプを登録します。私の質問は、これらのタイプをコンテナのどこに登録するかは重要ですか?

私の直感では、Bootstrapper ConfigureContainer()メソッドに登録すると、登録されたタイプがすべての人に利用可能になりますModulesが、Moduleクラスに登録すると、それらのタイプはそのタイプにのみ登録されModuleます。

4

1 に答える 1

4

簡単な答え:いいえ、登録する場所はわかりません。

インスタンスを適切に登録するのは、それらが存在するライブラリに適切であるということだけが論理的です。Unityも少し違います。

例1: ModuleAとModuleBがあり、インフラストラクチャにインターフェイスがあるとします。このインターフェイスをModuleAの実装に登録します。次に、moduleBでこのインスタンスを解決します。moduleAで構成しているので、機能します。持っていない場合は、例2が適しています。

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

于 2012-04-16T14:32:37.177 に答える