제네릭 형식 매개 변수 'T'로 사용할 수있는 제한되지 않은 가능한 형식 집합에 대해 공통적 인 생성자 매개 변수 집합을 제공해야하므로 의미가 없습니다.
그러나 제쳐 놓고 말하면, 당신이 그것을 할 수 있다고 생각합니다. 팩토리를 사용할 때 Resolve() Windsor가 통과하게 할 팩터 리 인터페이스의 매개 변수를 선언하기 만하면됩니다. 매개 변수 이름은 사전 키가됩니다. 컨테이너 자체에서 해석 될 생성자 속성을 선언 할 필요는 없습니다.
예. 우리는 용기와 종속 클래스 푸에 등록 된 구성 요소 바있다 말 : 우리가 입력 된 공장을 사용하는 경우
public interface IGenericFactory
{
T Create<T>(int something, string somethingElse)
}
가 윈저는 두 개의 매개 변수를 통과한다 : 우리는 공장 인터페이스를 선언 할
public class Foo
{
// Constructor requires Bar to be resolved from the container
public Foo(int something, Bar bar, string somethingElse)
{
...
}
}
컨테이너에서 다른 매개 변수 (막대)를 확인하십시오. 'something'과 'somethingElse'매개 변수는 사전에 넣기 만하면 사용할 수 있는지 여부를 판단 할 수 있습니다. 물론
Create<Foo>(1, "")
을 호출해도 사용할 수 있지만 Foo 이외의 다른 유형에서는 중복 될 수 있습니다.
왜이 작업을 수행 하시겠습니까? –
감사합니다. 이 같은 일을하고 싶습니다 var component = factory.CreateComponent ("foo", 3); 입력 된 공장 페이지에서 찾아 냈습니다. 미안해, 나는 장님이었다. – Tom