Spring.Net IoC и Волшебные Струны - PullRequest
2 голосов
/ 10 июля 2009

Я думал о методе IApplicationContext.GetObject (имя строки), и кажется, что он довольно сильно полагается на магические строки для получения объектов из контекста приложения. С другими контейнерами, такими как StructureMap , вы можете использовать универсальные шаблоны для указания объектов конфигурации и запросов, но есть ли лучший способ, чем использовать строки с контейнером IoC Spring.Net для запроса объектов из ApplicationContext?

Ответы [ 2 ]

2 голосов
/ 08 июля 2010

Spring поддерживает CommonServiceLocator через адаптер . Этот интерфейс имеет API , который вы ожидали, и вы также компилируете с общим локатором службы, так что вы можете переключать контейнеры IoC, если хотите, без необходимости изменять существующий код.

0 голосов
/ 25 августа 2009

У вас может быть оболочка, которую вы вызываете, принимая параметр универсального типа.

Примерно так:

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, но, по крайней мере, вы получите некоторую поддержку компилятора.

...