2012-04-06 18 views
1

CommonServiceLocatorは、さまざまなIoCコンテナを切り替えることを可能にする仲介のネクタイですが、MVVM Lightのサンプルコード、特にViewModelLocatorを見れば、面白いようです。MVVM Light - シンプルなIoC + CommonServiceLocator?

SimpleIoCをデフォルトロケータとして登録しますが、同時にSimpleIocデフォルトインスタンスで登録を呼び出します。

今後、SimpleIoCを引き裂こうとしたら、すべての登録コールを更新する必要はありませんか?

もう1つの質問は、過去にCastle Windsorを使用していて、.configファイルを使用してタイプをロードすることでタイプをロードするサポートです.Windows 8のシナリオではどのように動作しますか?

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

答えて

5

Common Service Locatorの実装では、ゲッターコール(GetInstance、GetAllInstancesなど)を置き換える必要はありませんが、そこでは停止しました。登録はIOCコンテナをユニークにするものです。例えば、あなたが言及しているように、設定ファイル(SimpleIocがないもの)での設定をサポートするものもあります。したがって、SimpleIocを選択した別のIOCコンテナに置き換えると、通常は登録部分が置き換えられます。これらの呼び出しは一般的に共通の場所にグループ化されているため、通常は置き換えが簡単であるため、通常は問題ありません。

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

MVVM LightにSimpleIocを追加することの私の目標は、すべて強力なIOCコンテナを提供することではありませんでした。実際、私は既存のもの(Castle Windsor、StructureMap、Unityなど)に弓を当てます。代わりに、私はIOCコンテナの世界で未経験のユーザーを誘惑する簡単な実装を提供したかったのです。より高度な機能が必要な場合は、別のより複雑な実装に移行します。

希望はこれが理にかなっています! Laurent

+0

SimpleIoCは[inspired](http://geekswithblogs.net/lbugnion/archive/2011/04/14/mvvm-light-v4-preview-3-bl16-mix11-edition-mvvmlight.aspx)なので、 [Simple Injector](http://simpleinjector.codeplex.com)で、シンプルインジェクタ(形式的にシンプルサービスロケータ)を使用していないのはなぜですか? – Steven

+0

Laurentにお返事ありがとうございます。私は実際に私が間違っていると思っていたので、このSimple IoCは単純にタイプコンテナです。これはMS Common Service Locatorと結びついていますか、コンストラクタ/プロパティベースの注入をサポートしていますか? –