문제

누구든지 IOC를 콘솔 애플리케이션에 넣을 수있는 좋은 솔루션을 생각할 수 있습니까?

현재 우리는 다음 방법으로 정적 클래스를 사용하고 있습니다.

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

나는 경험이 원활하지 않기를 원하지만 콘솔 애플리케이션에서 이것을 달성하는 방법을 생각할 수는 없습니다.

도움이 되었습니까?

해결책

서비스 위치 전화를해야합니다 (Resolve<T>()) 어딘가. 트릭은 가능한 한 바깥쪽으로 가져 오는 것입니다. 콘솔 애플리케이션의 경우이 부트 스트랩은에서 발생합니다 Main() 방법. 거기에서 그것을하고 다른 곳에서 그러한 결의 전화를 최소화하면 당신은 훌륭 할 것입니다. 대부분의 종속성의 경우 생성자 주입을 사용하십시오.

다른 팁

콘솔 응용 프로그램은 IOC의 웹 또는 양식 응용 프로그램에 대한 제한이 없습니다. 선택한 선택 (스프링, 린젝트, 유니티 등)을 사용할 수 있습니다. 대부분은 콘솔 애플리케이션 외부의 XML 파일로 구성 할 수 있으며 Ninejector와 같은 일부는 응용 프로그램 내에 구성이 필요합니다.

문제없이 콘솔 앱에서 Spring.net을 사용했습니다. 구성 파일을 가리키면 모든 종속성이 연결됩니다. 그때 무슨 일이야 하다 이러한 객체를 사용하면 콘솔 앱이 무엇을하려고하는지에 따라 다릅니다.

체크 아웃 Microsoft 단일성.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top