2016-07-22 3 views
2

のは、私はプロパティstring Setting1ISettingsを持っていると私は持っているとしましょうキャッスルウィンザーでは、別のコンポーネントのプロパティに依存してサービスを行うことは可能ですか?

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を使用し、設定1を成分にいくつかのプリミティブのプロパティを渡す必要に応じ

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

第二に、ウィンザー.DependsOn関数を使用します。

container.Register(
       Component.For<IMyService >() 
       .ImplementedBy<MyComponent >() 
       .DependsOn(Dependency.OnValue("setting1", ISettingsInstance.Setting1)); 
関連する問題