构造函数的依赖项和参数

本文关键字:参数 依赖 构造函数 | 更新日期: 2023-09-27 18:26:06

我有:

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

和:

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

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

构造函数的依赖项和参数

您可以将Unity配置为使用默认构造函数,即接受整数参数的构造函数,也可以声明这样做的工厂函数。

默认c'tor:

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

带有integer参数的c'tor:

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

工厂:

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