2016-05-11 2 views
1

Есть ли способ до RegisterType в autofac с дополнительным параметром? То есть в прошлом у нас было что-то вродеДополнительная зависимость в Autofac с RegisterType

builder.Register(c => new Bla(c.ResolveOptional<Blub>()) 

Который явно не справляется с RegisterType.

Итак, любой способ сделать это? Вероятно, я просто очень слеп.

ответ

1

Зависимости конструктора не должны быть дополнительными. Вместо этого зарегистрируйте пустую реализацию (a.k.a. a Null Object), вам не нужна никакая реализация. Это упрощает потребляющий компонент, поскольку ему не нужно иметь дело с нулевыми значениями и всегда может ожидать, что будет действительная реализация.

+0

Хороший совет, спасибо. Я обязательно это рассмотрю. – FrankyBoy

1

Оказывается, я думал слишком сложно. Ответ просто: параметры по умолчанию в конструкторе.

class Bla 
    public Bla(Blub blub = null) 

Autofac достаточно яркий, чтобы заполнить их, если тип зарегистрирован, но оставляет их иначе.

Смежные вопросы