2016-07-22 6 views
2

의 내가 속성 string Setting1ISettings을 가지고 있고이 있다고 가정 해 봅시다캐슬 윈저 (Castle Windsor)에서 다른 구성 요소의 소유에 의존하여 서비스를 할 수 있습니까?

public class MyComponent : IMyService 
{ 
    public MyComponent(string setting1) 
    { 
     // set fields 
    } 
} 

이 ISettings.Setting1이를 MyComponent의 의존성을 만족시키기 위해 사용되어야한다는 것을 말 윈저을 연결할 수 있습니까?

+1

예 가능합니다. http://kozmic.net/2010/02/15/new-castle-windsor-feature-ndash-typed-arguments/을 참고하십시오. 그러나 왜 'MyComponent'가 생성자 매개 변수로'ISettings'을 가져 오지 못합니까? –

+0

@PhilDegenhardt -이 링크를 제공하는데 크레딧을 원하십니까? 답변으로 게시하는 경우이를 승인 된 것으로 표시합니다. – Kir

답변

1

2 가지 옵션을 제안합니다. 우선

는 종속성 ISettings를 사용할 필요

public class MyComponent : IMyService 
{ 
    public MyComponent(ISettings settings) 
    { 
     // access settings.Setting1 
    } 
} 

둘째, 윈드 .DependsOn 기능 컴포넌트 일부 기본 특성을 전달하는 곳 설정 1을 사용한다.

container.Register(
       Component.For<IMyService >() 
       .ImplementedBy<MyComponent >() 
       .DependsOn(Dependency.OnValue("setting1", ISettingsInstance.Setting1));