내 솔루션에는 프리젠 테이션 (winforms 프로젝트), 도메인 (클래스 lib) 및 지속성 (클래스 lib)의 세 가지 레이어가 있습니다. 종속성 삽입을 구현하여 이들을 분리하려고합니다. 내 응용 프로그램 루트가 내 프레젠테이션 계층에 있습니다. DI 컨테이너 (이 경우 단일성)를 참조해야하는 유일한 시간은 내 응용 프로그램 루트에 있다는 것을 알고 있습니다. 그렇지 않으면 간단히 내 DI 컨테이너에 대한 의존성이있는 모든 곳에서 클래스 종속성을 대체 할 것입니다. 보다 나은).의존성 삽입 구현
이러한 기초 개념을 염두에두고 나는 구체적인 구현 방법을 고심하고 있습니다. 아마도 내 응용 프로그램 루트는 자체의 별도 프로젝트, 즉 콘솔 응용 프로그램에 있어야합니다. 그런 다음 IPresentation, IDomain 및 IPersistence를 해당 생성자에 나열하는 첫 번째 'overallApplication'클래스를 해결할 수 있습니다. 나는 (실제 구현이 등록되었다고 가정 할 때) 단일성 프레임 워크가 모든 하위 종속성을 재귀 적으로 풀 것이라고 이해한다.
귀하의 경험에 비추어 볼 때 이것이 현명한 접근 방법 이었는지 조언 해 줄 수 있습니까? 디커플링의 개념과 중요성을 이해하고 DI를 어떻게 개념적으로 높은 수준에서 해결할 수 있는지 이해하지만 여러 레이어가 포함 된 실제 응용 솔루션 (VS에서 별도의 프로젝트로 편성 됨)에 모든 것을 하나로 묶기 위해 고심하고 있습니다.
적절한 구현 사례에 대한 도움이나 조언을 주시면 감사하겠습니다.
관련 항목 : https://stackoverflow.com/questions/9501604/ioc-di-why-do-i-have-to-reference-all-layers-assemblies-in-entry-application – Steven