IOC 컨테이너에 대한 인터페이스 래퍼를 만들려고하므로 특정 컨테이너에 대한 종속성이 필요하지 않습니다. 내 문제는 문자열 중 하나 인 companyID를 사용하는 일부 서비스 클래스입니다.래퍼를 만들 때의 IOC 컨테이너 및 프리미티브
T Resolve<T>()
과 같이 일반적인 인터페이스 방법을 만들고 싶습니다. 여기서 T는 서비스 인터페이스입니다.
ObjectFactory.With("companyid").EqualTo("someCompanyID").GetInstance<ICompanyService>();
내가 인터페이스 방식의 호출 이런 종류의 포장 :
은 지금은 콘크리트 생성자가 회사 ID에 걸리는 경우 그래서 같은 것을 할 것입니다 뒤에서 StructureMap를 사용하고 알고 : ICompanyService GetCompanyService(string companyID)
내가 지금 가지고있는 방식은 응용 프로그램이 StructureMaps 구성을 초기화하고 서비스를 전달하는 구체적인 클래스가 생성자에 대해 많은 것을 알고 있어야합니다. 나는 그 일이 일어나지 않도록하고 포장지를 일반적인 것으로 만들고 싶습니다. 인터페이스의 각 메소드에 companyID
을 추가하지 않고도 좋은 방법이 있습니까?
나는 SM을 조금 뽑아 냈다. 나는 래퍼 (wrapper)를 만든 일부 오픈 소스를보고 있지만, ctors의 프리미티브를 고려하지는 않는다. – CSharpAtl
@ CSharpAtl- 디자인을 재고하십시오. 이와 같은 프레임 워크는 가장 낮은 공통 분모와 함께 작동해야합니다. StructureMap 특정 기능을 사용할 수있는 것보다 IOC를 전환 할 수 있는지 여부를 결정해야합니다. – RichardOD
@RichardOD 동의합니다. – pattersonc