누구나 IOC를 콘솔 응용 프로그램으로 가져 오는 좋은 해결책이 있습니까? IOC 콘솔 응용 프로그램 용?
는 순간 우리는 다음과 같은 방법으로 정적 클래스를 사용 : 나는 원활한로 경험을하고 싶지만 콘솔 응용 프로그램에서이를 달성하는 방법을 생각할 수 없다public static T Resolve<T>()
{
return dependencyResolver.Resolve<T>();
}
.
누구나 IOC를 콘솔 응용 프로그램으로 가져 오는 좋은 해결책이 있습니까? IOC 콘솔 응용 프로그램 용?
는 순간 우리는 다음과 같은 방법으로 정적 클래스를 사용 : 나는 원활한로 경험을하고 싶지만 콘솔 응용 프로그램에서이를 달성하는 방법을 생각할 수 없다public static T Resolve<T>()
{
return dependencyResolver.Resolve<T>();
}
.
서비스 찾기 전화 (Resolve<T>()
)를 어딘가에 만들어야합니다. 트릭은 가능한 한 비공식적 인 방법으로 얻는 것입니다. 콘솔 응용 프로그램의 경우이 부트 스트랩은 Main()
메소드에서 발생합니다. 거기에 그것을 수행하고 그 해결 전화를 최소화 다른 곳에 당신은 위대 할거야. 대부분의 종속성에 대해 생성자 삽입을 사용하십시오.
저는 콘솔 앱에서 Spring.NET을 아무런 문제없이 사용했습니다. 설정 파일을 가리 키기 만하면 모든 의존성이 연결됩니다. 그때 당신은 을과 함께 할 때 콘솔 앱이 무엇을하려고하는지에 따라 다릅니다.
Checkout Microsoft Unity.
콘솔 응용 프로그램에는 IoC 용 웹 또는 양식 응용 프로그램에 대한 제한이 없습니다. 당신은 당신의 선택 (Spring, Ninject, Unity 등)을 사용할 수 있습니다. 대부분은 콘솔 응용 프로그램 외부에서 XML 파일로 구성 할 수 있으며 Ninjector는 응용 프로그램 내부에서 구성해야합니다.
Forgot Unity –
IoC 컨테이너에서 Resolve() 메서드를 직접 호출하거나 래퍼를 사용하여 콘솔 응용 프로그램에서 IoC 컨테이너를 숨기십니까? –
Rookian
컨테이너에서 직접 호출하십시오. 숨길 이유가없는 한. –
@MattHinze 콘솔 앱에서도 여전히 안티 패턴으로 간주됩니까? – Rushino