ObjectFactory.GetInstance()를 사용하여 이전 인스턴스를 가져 오는 대규모 응용 프로그램이 있습니다.중첩 된 컨테이너를 사용하기 위해 ObjectFactory.GetInstance의 대규모 응용 프로그램 리팩토링
이제 생성자 삽입을 사용하여 종속성을 주입하는 올바른 방법으로 응용 프로그램으로 이동하려고합니다. 그러나 모든 코드를 한 번에 변환하는 것은 거의 불가능합니다 (일부 정적 클래스는 ObjectFactory.GetInstance를 사용하고 다른 서비스는 모든 종속성이있는 생성자가 없습니다 ...).
ObjectFactory.GetInstance 호출을 현재 중첩 된 컨테이너를 사용하는 대체품으로 대체하는 방법이 있는지 궁금합니다. 모든 ObjectFactory.GetInstance를 Ioc.GetCurrentNestedContainer(). GetInstance로 대체하여 빠르게 실행되도록합니다. 하지만 현재 활성 중첩 컨테이너를 반환하기 위해 Ioc.GetCurrentNestedContainer를 구현할 수 있습니까?
모든 클래스에 IContainer를 삽입 할 수 없으므로 (일부는 정적이거나 해당하는 생성자가 없습니다) 생성자 삽입을 사용할 수 없습니다 (아직).
DI는이 응용 프로그램의 MVC, WCF 및 작업 기반 시나리오에 사용됩니다. 나는 WCF 및 작업 기반 시나리오에 대해 이야기 할 수없는 내가 MVC (내 추천을 제공 할 수 있습니다 동안
아쉽게도 웹, wcf, Windows 서비스 시나리오에서 코드 (예 : 비즈니스 계층)가 사용되므로 HttpContext를 기반으로하는 솔루션으로는 충분하지 않습니다. – rekna
알았어, 나는 또 다른 가능성에 대한 나의 대답을 업데이트했다. 미안 나는 더 많은 도움을받을 수 없었다! –
가장 큰 문제는 DI로 생성되지 않은 정적 클래스와 클래스가 될 것이라고 생각합니다. 나는 중첩 된 컨테이너를 잡을 수있는 방법을 찾지 못하고있다. – rekna