저는 StructureMap을 처음 사용하고 있으며 구조 코드 2.5.4를 사용하는 기존 코드가 일부 있습니다.구조체 맵 및 삽입 IEnumerable <T>
IEnumerable<ICar>
을 매개 변수로 사용하는 생성자가있는 StructureMap을 사용하여 생성 된 클래스가 있습니다.
레지스트리에 다음 코드가 있습니다.
Scan(x =>
{
x.TheCallingAssembly();
x.WithDefaultConventions();
x.AddAllTypesOf<ICar>();
}
);
ForRequestedType<IEnumerable<ICar>>().TheDefault.Is.ConstructedBy(
x => ObjectFactory.GetAllInstances<ICar>());
는 I는 단위 테스트를 쓰고 및 오프 ObjectFactory를 내포 용기를 얻은 및 분사 방법을 사용하여 인스턴스를 주입했다. ICar의 인스턴스 중 하나가 해당 생성자에서 주입 된 형식을 받아야합니다. 그러나 그것은 작동하지 않았고 내 내포 된 컨테이너를 사용하지 않는 ObjectFactory.GetAllInstances() 호출까지 추적했습니다.
어떻게 작동합니까?
구조 배열 autowiring 배열과 IEnumerable 인스턴스에 대해서도 읽었지만 제대로 작동하지 않습니다.
위의 레지스트리 코드를 다시 작성하여 IEnumerable<ICar>
의 인스턴스가 만들어지고 내 중첩 컨테이너의 주입 된 유형을 사용하는 더 좋은 방법이 있습니까?
어떤 장소에서는'TCar'를 사용하고 다른 곳에서는'ICar'를 사용합니다. 그들의 관계는 무엇입니까 (그리고 StructureMap은 그들의 관계에 대해 알고 있습니까)? –
미안하지만, 그들은 똑같은거야. 오타. – GiddyUpHorsey