Регистрация типов с помощью лямбда-выражения

#c# #lambda #unity-container

#c# #лямбда #unity-контейнер

Вопрос:

Мне было интересно, как мне добиться такой функции в UnityContainer:

 container.RegisterType<IDummy>(Func<IDummy>) // deferred resolution
  

Ответ №1:

Если вы собираетесь зарегистрировать factory вместо instance, попробуйте это:

 container.RegisterType<IDummy>(new InjectionFactory(context => new Dummy()));
  

Просто замените «context => new Dummy()» на ваш лямбда.

Комментарии:

1. Этот метод устарел. Текущий способ сделать это: контейнер. RegisterFactory<IDummy>(контекст => новый фиктивный ());