Вызов всех экземпляров ISomething в Autofac - PullRequest
3 голосов
/ 22 февраля 2011

У меня есть интерфейс IS что-то с методом Start. Я хочу получить все реализации этого интерфейса (в нескольких сборках, основной и всех ссылочных) и вызвать метод Start при запуске приложения. Как я могу сделать это с Autofac 2.4.4.705?

1 Ответ

8 голосов
/ 22 февраля 2011

Вы можете решить

 IEnumerable<ISomething>

и вызовите Start для каждого из них

Забыл упомянуть, что вы должны сначала зарегистрировать все реализации ISomething.

Assembly[] assemblies = ...;
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(assemblies).AssignableTo<ISomething>().As<ISomething>();
var container = builder.Build();

Где "сборки" - это массив сборок, из которых вы хотите зарегистрироваться.

...