에 해결 등록 열려있는 제네릭에 대리인을 제공 :내가이 같은 인터페이스를 가지고 Autofac
ICreator<T> {}
내가 사용자가이 같은 의존성을 해결하게됩니다 싶지 :
var creator = container.Resolve<ICreator<IUser>>();
요령은 ICreator<T>
에 대한 구체적인 유형의 사용자 정의 생성을 수행 할 수 있기를 원합니다. 필자의 경우에는 에 TConcrete
을 사용하는 일반 형식을 사용하는 생성자가 있습니다. 규칙에 따라 TConcrete
의 유형에 이 ICreator
에 정의되어 있어야하지만, 인스턴스를 만들려면 위임자 인 RegisterGeneric
이 필요하지 않은 것으로 보입니다.
어쩌면 이것은 Autofac에 존재하며 누락 되었습니까? 모든 통찰력이 인정 될 것입니다 - TIA.
나는 이것이 내가 찾고있는 것이라고 생각하지 않는다. 내가 원하는 것은'ICreator'을 지정하고'Creator '이'ICreator '을 구현하는'Creator '을 반환하는 것입니다. ICreator 작성자 = 새 작성자 () - 수동으로 코드에서이 작업을 수행 할 수 있지만 Autofac에서 이러한 종류의 구성을 등록 할 수있는 방법을 찾을 수 없습니다. –
JasonBock
작동하는 한 가지는'OnActivating'을 후크하고'ReplaceInstance'를 호출하는 것입니다. 그것은 제가 찾고있는 것보다 낫지 만, 제가 대체 할 수있는'RegisterGeneric'에서 제공하는 제네릭 타입의 인스턴스를 생성한다는 점에서 작은 부작용이 있습니다. – JasonBock