Spring.NetのIoCと魔法の文字列
-
12-09-2019 - |
質問
私はIApplicationContext.GetObject(文字列名)方法について考えてきたし、アプリケーションコンテキストからオブジェクトを取得するには、魔法の文字列にかなり大きく依存しているようです。 のStructureMap のような他のコンテナを使用すると、コンフィギュレーションとリクエストオブジェクトを指定するには、ジェネリックを使用することができますが、そこにありますApplicationContextのからオブジェクトを要求するSpring.Net IoCコンテナで文字列を使用してより良い方法はありますか?
解決
あなたはジェネリック型パラメータを取って、呼び出すラッパーを持つことができます。
このような何かます:
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 contatinersの一部として良いが、少なくとも、あなたはコンパイラのサポートのいくつかの種類を取得します。
他のヒント
春は<のhref = "http://commonservicelocator.codeplex.com経由 CommonServiceLocatorするをサポートしています/wikipage?title=Spring%20.NET%20Adapter&referringTitle=Home」のrel = "nofollowをnoreferrer">アダプタの。このインタフェースは、あなたが期待する APIを持っています。また、共通に対してコンパイルサービスロケータあなたがしたい場合ので、あなたは、既存のコードを変更することなく、IoCコンテナを切り替えることができます。
所属していません StackOverflow