동일한 유형의 두 개의 다른 인젝션 팩토리를 등록하고 싶습니다. 예를 들어 아래 두 개의 등록이 될 수 있습니다.유니티가 다른 인젝션 팩토리를 선택하십시오
container.RegisterType<BaseSearchProvider>(
new HierarchicalLifetimeManager(),
new InjectionFactory(c =>ExamineManager.Instance.SearchProviderCollection["Setting 1"]));
container.RegisterType<BaseSearchProvider>(
new HierarchicalLifetimeManager(),
new InjectionFactory(c => ExamineManager.Instance.SearchProviderCollection["Setting 2"]));
현재 foreach 유형 I는 수동으로 내 구성을 등록합니다. 다른 서비스가 있지만 일부 서비스는 첫 번째 등록을 사용해야하고 다른 서비스는 두 번째 등록을 사용해야합니까? 어떤 "프로필"을 사용하여 이것을 수행 할 수있는 방법이 있습니까?
container.RegisterType<IMeetingSearchService>("using Setting 1")
솔루션이 BaseSearchProvider을 상속 나는 두 가지 유형을 등록하고이 나의 모든 생성자를 적용 할 수 있도록이 유형을 등록하는 것입니다 나는 지금은 떨어져 생각할 수있는 유일한 것은, 그래서 난 돈 ' 그 선택자를 필요로하지 마라. 그러나 다른 방법이있을 수 있습니까?
감사합니다 ... 나중에 조금 테스트 해 보겠습니다 ... 그러나 그런 다음 두 클래스를 가져와야하는 경우, 잘 이해하면 쓸모가 없습니다. 두 클래스를 내 주입 스타일로 등록 할 수 있습니까? –
공장에 등록물을 주입하는 것은 제 통제의 반대에 대한 것입니다. 이 팩토리는 사용하려는 클래스에서 해결해야합니다. 그렇기 때문에 구체적인 설정이 필요한 공장에 구체적인 수업이 필요합니다. – PolkaHard