Зависимость и параметр для конструктора - PullRequest
1 голос
/ 29 февраля 2012

У меня есть:

[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 использует конструктор с нулевыми параметрами.

1 Ответ

2 голосов
/ 01 марта 2012

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

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

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

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

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

Factory:

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