2011-12-12 2 views
1

Castle Windsor에서는 컨테이너 등록 클래스의 생성자에 특정 구체 구현을 전달하고자합니다. 이런 식으로 뭔가 (내가 구문이 마지막에 불법 알고 ;-)) : 지금까지 커넥터를 만들 때성 Windsor 구현에서 생성자와 함께 등록하십시오.

var myConfig = new MyConfig(); 
container.Register(Component 
    .For<IConnector>() 
    .ImplementedBy<Connector>() 
    .Parameters(myConfig)); 

내가 MyConfig를 전달할 수 어쨌든 있나요? 이것이 가능한가?

답변

1

예는이 작업을 수행 할 수 있습니다 (커넥터 매개 변수로 MyConfig를를 사용하는 생성자가) :

container.Register(Component 
    .For<IConnector>() 
    .ImplementedBy<Connector>() 
    .ServiceOverrides(
    ServiceOverride 
    .ForKey("myConfig") 
    .Eq("NameYouGaveMyConfigWhenRegisteringInCastle")); 

ForKey ("...") 매개 변수의 정확한 이름을 당신 MyConfig 용 커넥터로 전달하십시오. . "... NameYouGaveMyConfig"

내가 입력 한 경우

container.Register(Component 
.For<IMyConfig>() 
.ImplementedBy<MyConfig>() 
.Named("config"); 

그래서 당신은 "설정"을 넣어 것 :

이퀄라이저는 ("...") 당신이 MyConfig를 등록 할 때 지정하는 이름입니다