我有:
[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使用零参数的构造函数。
答案 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()));