IApplicationContext.GetObject (문자열 이름) 메서드에 대해 생각해 보았는데 응용 프로그램 컨텍스트에서 개체를 가져 오는 데 마술 문자열에 상당히 의존하는 것 같습니다. StructureMap과 같은 다른 컨테이너를 사용하면 제네릭을 사용하여 구성 및 요청 객체를 지정할 수 있지만 Spring.Net IoC 컨테이너에서 문자열을 사용하여 ApplicationContext에서 객체를 요청하는 것보다 더 나은 방법이 있습니까?Spring.Net IoC 및 Magic String
2
A
답변
0
제네릭 형식 매개 변수를 사용하여 호출하는 래퍼가있을 수 있습니다. 다른의 IoC contatiners의 일부로서
public void MyMethod()
{
IMyService myService = ApplicationContextWrapper.Resolve<IMyService>();
}
public static class ApplicationContextWrapper
{
public static T Resolve<T>()
{
return ApplicationContext.Resolve<T>(typeof(T).Name);
}
}
좋지 않다,하지만 적어도 당신은 컴파일러 지원의 어떤 종류를 얻을 것이다 :
이런 식으로 뭔가.
2
봄은 adapter을 통해 CommonServiceLocator을 지원합니다. 이 인터페이스는 사용자가 예상 한 the API을 가지고 있으며 기존 서비스 로케이터와 비교하여 컴파일하므로 기존 코드를 수정하지 않고도 IoC 컨테이너를 전환 할 수 있습니다.