2

私は IApplicationContext.GetObject(string name) メソッドについて考えてきましたが、アプリケーション コンテキストからオブジェクトを取得するためにマジック ストリングにかなり大きく依存しているようです。StructureMapのような他のコンテナーでは、ジェネリックを使用して構成を指定し、オブジェクトを要求できますが、Spring.Net IoC コンテナーで文字列を使用して ApplicationContext からオブジェクトを要求するよりも良い方法はありますか?

4

2 に答える 2

2

Spring は、アダプターを介してCommonServiceLocatorをサポートします。このインターフェイスには期待どおりの APIが含まれており、共通サービス ロケーターに対してもコンパイルするため、既存のコードを変更することなく、必要に応じて IoC コンテナーを切り替えることができます。

于 2010-07-08T11:11:03.257 に答える
0

ジェネリック型パラメーターを使用して、呼び出すラッパーを作成できます。

このようなもの:

public void MyMethod()
{
    IMyService myService = ApplicationContextWrapper.Resolve<IMyService>();
}


public static class ApplicationContextWrapper
{
    public static T Resolve<T>()
    {
        return ApplicationContext.Resolve<T>(typeof(T).Name);
    }
}

他のIoCコンタチナーほど良くはありませんが、少なくともある種のコンパイラサポートが得られます。

于 2009-08-25T14:11:42.387 に答える