質問

私は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コンテナを切り替えることができます。

scroll top