12

누구나 IOC를 콘솔 응용 프로그램으로 가져 오는 좋은 해결책이 있습니까? IOC 콘솔 응용 프로그램 용?

는 순간 우리는 다음과 같은 방법으로 정적 클래스를 사용 : 나는 원활한로 경험을하고 싶지만 콘솔 응용 프로그램에서이를 달성하는 방법을 생각할 수 없다

public static T Resolve<T>() 
{ 
    return dependencyResolver.Resolve<T>(); 
} 

.

답변

7

서비스 찾기 전화 (Resolve<T>())를 어딘가에 만들어야합니다. 트릭은 가능한 한 비공식적 인 방법으로 얻는 것입니다. 콘솔 응용 프로그램의 경우이 부트 스트랩은 Main() 메소드에서 발생합니다. 거기에 그것을 수행하고 그 해결 전화를 최소화 다른 곳에 당신은 위대 할거야. 대부분의 종속성에 대해 생성자 삽입을 사용하십시오.

+0

IoC 컨테이너에서 Resolve () 메서드를 직접 호출하거나 래퍼를 사용하여 콘솔 응용 프로그램에서 IoC 컨테이너를 숨기십니까? – Rookian

+0

컨테이너에서 직접 호출하십시오. 숨길 이유가없는 한. –

+1

@MattHinze 콘솔 앱에서도 여전히 안티 패턴으로 간주됩니까? – Rushino

1

저는 콘솔 앱에서 Spring.NET을 아무런 문제없이 사용했습니다. 설정 파일을 가리 키기 만하면 모든 의존성이 연결됩니다. 그때 당신은 과 함께 할 때 콘솔 앱이 무엇을하려고하는지에 따라 다릅니다.

1

Checkout Microsoft Unity.

3

콘솔 응용 프로그램에는 IoC 용 웹 또는 양식 응용 프로그램에 대한 제한이 없습니다. 당신은 당신의 선택 (Spring, Ninject, Unity 등)을 사용할 수 있습니다. 대부분은 콘솔 응용 프로그램 외부에서 XML 파일로 구성 할 수 있으며 Ninjector는 응용 프로그램 내부에서 구성해야합니다.

+0

Forgot Unity –

관련 문제