저는 Autofac을 사용하여 응용 프로그램의 종속성 삽입을 처리하고 있습니다. 그러나 런타임에 일부 반사 마법을 수행하는 하나의 구성 요소가 있고 컴파일 시간에 필요한 종속성을 알 수 없습니다.서비스 위치 지정자로 Autofac 사용
보통이 구성 요소는 컨테이너를 직접 참조하고 원하는대로 해결합니다. 그러나이 클래스를 인스턴스화하는 클래스에는 컨테이너에 대한 참조가 없습니다.
효과적으로 구성 요소에는 Autofac에 대한 종속성이 있습니다. 느슨한 커플 링을 선호 하겠지만 여기서는 옵션이없는 것 같습니다. 컨테이너에 대한 참조를 내 생성자에게주기 위해 (생성자 args에서, 또는 속성 삽입을 사용하거나, 무엇이든간에) Autofac에 요청하는 방법이 있습니까? 아니면, Autofac에 어떤 것을 해결할 수있는 마법 서비스 로케이터 개체를 제공하는 더 깨끗한 방법이 있습니까?
구성 요소가 어떤 마법을하는지 보는 것은 흥미로울 것입니다. 서비스 검색 패턴 이외의 다른 방법이있을 수 있습니다. 일부 코드로 업데이트 할 수 있습니까? –
나는 그것을 꽤 잘 설명 할 수있다. 메시지가 버스를 통해 들어 오면 코드는 메시지가 어떤 메타 데이터를 사용하는지 유형을 결정한 다음 해당 유형을 구성합니다. 그런 다음 Autofac을 사용하여'IConsume'(여기서'type'은 메타 데이터의 유형 임)의 모든 구현자를 찾은 다음 그 위에 Consume 메소드를 호출해야합니다. –
다음과 같은 의미입니다. http://kozmic.pl/2010/03/11/advanced-castle-windsor-ndash-generic-typed-factories-auto-release-and-more/ –