다음과 같은 구조 맵을 구성하려고합니다.하지만 꽤 괜찮은 것처럼 보일 수 있습니다.구조 맵 구성에 대한 도움말
ObjectFactory.Initialize(x => {
x.For<TunaRepository>()
.Use(new TunaRepository(serviceEndpoint))
.Named("Tuna");
x.For<CodRepository>()
.Use(new CodRepository(serviceEndpoint))
.Named("Cod");
x.For<HaddockRepository>()
.Use(new HaddockRepository(serviceEndpoint))
.Named("Haddock");
x.For<IFishRepository>().AddInstances(y =>
{
y.OfConcreteType<TunaRepository>().
// Somehow add all instances here???
});
x.For<TunaController>().Use<TunaController>()
.Ctor<IFishRepository>("repo").Is<TunaRepository>(); // This Is should use the instance registered above
x.For<CodController>().Use<CodController>()
.Ctor<IFishRepository>("repo").???
x.For<HaddockController>().Use<HaddockController>()
.Ctor<IFishRepository>("repo").???
});
할 수 있기를 원하는 코드 :
var instances = ObjectFactory.GetAllInstances<IFishRepository>();
및
var instance = ObjectFactory.GetNamedInstance<IFishRepository>("Cod");
또한 IFichRepository를 내 컨트롤러의 인수로 사용하십시오.
public TunaController(IFishRepository repo ...
그래서 내 질문에 내 ObjectFactory 구성하는 가장 좋은 방법은 무엇입니까?
정보 주셔서 감사합니다. (lambda 인수에는 하나의 입력 인수가 있지만 :)) – Dve