0

내가 본 모든 양파 아키텍처 예제는 ASP.NET MVC 애플리케이션의 컨텍스트에 있습니다. 이들은 인프라 DLL에 IoC 설치를 적용하고 IIS가 적절한 시간에 설치 코드를 실행하도록 일부 마법 (HttpModule 또는 WebActivator)을 사용하여 UI와 서비스 구현 (인프라) 간의 직접적인 참조를 피하는 경향이 있습니다.양파 아키텍처를 사용하는 Windows 서비스

필자는 Windows (TopShelf) 서비스를 담당하고 있으며 서비스 제어 프로젝트를 인프라 프로젝트와 완전히 분리 된 상태로 유지하는 방법에 어려움을 겪고 있습니다. IIS 웹 응용 프로그램과 같이 연결할 파이프 라인은 없습니다.

제가 생각할 수있는 최선의 방법은 서비스 프로젝트에서 IoC 레지스트리/모듈 클래스에 대한 DLL을 검사하는 것입니다.하지만 여전히 깨끗하다고는 생각하지 않습니다.

아이디어가 있으십니까?

+0

문제가 있습니까? – Dzenan

답변

0

Windows 서비스는 정의에 따라 UI가 아니므로, 이것이 무엇을 성취 할 지 확신하지 못합니다.

모든 TopShelf 프로젝트 요구 사항은 실제 서비스 클래스에 대한 참조입니다. 인프라 프로젝트에는 TopShelf에 대한 참조가 필요하지 않습니다 (예 : shown in the documentation).

TopShelf 프로젝트의 인프라 서비스에 대한 참조가없는 경우 서비스를 구성하는 것이 추악 할 것입니다.

IoC를 사용하여 서비스를 구성하기 위해 ObjectFactory 또는 ServiceResolver를 사용해야 할 수도 있지만 어쨌든 구성 루트가됩니다.

관련 문제