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