构造函数的依赖关系和参数

时间:2012-02-29 17:47:56

标签: c# dependencies unity-container

我有:

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

class qwe
{
    public qwe()
    {
        MessageBox.Show("qwe");
    }

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

如何配置Unity以便在我注册int时使用带有int的构造函数创建我的类qwe,但是当我没有注册int值时,Unity使用零参数的构造函数。

1 个答案:

答案 0 :(得分: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()));