2012-02-29 2 views
1

у меня есть:зависимости и параметр конструктору

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

И:

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

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

Как я могу настроить Unity так, что когда я прописал INT Unity создает свой класс QWE с конструктором, который принимает int, но когда я не зарегистрировал значение int, Unity использует конструктор с нулевыми параметрами.

ответ

2

Вы можете настроить Unity для использования конструктора по умолчанию, конструктора, который принимает целочисленный параметр или объявляет заводскую функцию, которая это делает.

По умолчанию c'tor:

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

c'tor с целочисленным параметром:

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

Factory:

container.RegisterType<qwe>(new InjectionFactory(c => (myIntValue > 0) ? new qwe(myIntValue) : new qwe())); 
Смежные вопросы