2012-02-29 32 views
1

をコンストラクタにパラメータ:依存関係と

[Dependency] 
public qwe property { get; set; } 

そして:

私が登録したときのint Unityが取るコンストラクタで私のクラスのQWEを作成するように私はUnityを設定するにはどうすればよい
class qwe 
{ 
    public qwe() 
    { 
     MessageBox.Show("qwe"); 
    } 

    public qwe(int x) 
    { 
     MessageBox.Show("qwe INT"); 
    } 
} 

intですが、int値を登録していない場合、Unityはパラメータがゼロのコンストラクタを使用します。

答えて

2

デフォルトコンストラクタ、整数パラメータを取るコンストラクタ、またはそれを行うファクトリ関数を宣言するために、Unityを設定することができます。

デフォルトc'tor:整数パラメータを持つ

container.RegisterType<qwe>(new InjectionConstructor()); 

c'tor:

container.RegisterType<qwe>(new InjectionConstructor(myIntValue)); 

工場:

container.RegisterType<qwe>(new InjectionFactory(c => (myIntValue > 0) ? new qwe(myIntValue) : new qwe()));