1

したがって、CommonServiceLocator がさまざまな IoC コンテナーを切り替えるための仲介であることは承知していますが、MVVM Light のサンプル コード、特に ViewModelLocator を見ると、次のような意味で興味深いように思えます。

SimpleIoC を既定のロケーターとして登録しますが、同時に SimpleIoc の既定のインスタンスで Register を呼び出します。

将来、SimpleIoC を破棄する場合、すべての登録呼び出しを更新する必要があるのではないでしょうか?

もう 1 つの質問は、過去に Castle Windsor を使用したことがあり、.config ファイルを介して構成することで型の読み込みをサポートしていますが、Windows 8 のシナリオではどのように機能するのでしょうか?

私はまだIoCの使用が理にかなっているシナリオを見つけようとしていますか?

4

1 に答える 1

5

Common Service Locator の実装により、getter 呼び出し (GetInstance、GetAllInstances など) を置き換える必要がないことが保証されますが、そこで停止しました。登録は、IOC コンテナーを一意にするものです。たとえば、あなたが言及したように、構成ファイルを使用した構成をサポートするものもあります(SimpleIocはサポートしていません)。そうです、SimpleIoc を選択した別の IOC コンテナーに置き換える場合、通常は登録部分を置き換えます。これらの呼び出しは通常、共通の場所にグループ化されているため、通常は問題ないことに注意してください。そのため、置き換えがかなり簡単です。

詳細については、http://commonservicelocator.codeplex.com/ページを確認してください。

SimpleIoc を MVVM Light に追加した私の目標は、強力な IOC コンテナーを提供することではありませんでした。実際、私は既存のもの (Castle Windsor、StructureMap、Unity など) に頭を下げています。代わりに、経験の浅いユーザーを IOC コンテナーの世界に惹きつけるような単純な実装を提供したいと考えました。より高度な機能が必要になると、別のより複雑な実装に移行するという考えです。

これが理にかなっていることを願っています!ローラン

于 2012-04-06T12:16:40.640 に答える