在Autofac中调用所有ISomething实例

时间:2011-02-22 06:16:30

标签: autofac

我有一个带有方法Start的接口ISomething。 我想得到这个接口的所有实现(在多个程序集中,主要的和所有引用的),并在应用程序启动时调用Start方法。 如何使用Autofac 2.4.4.705进行此操作?

1 个答案:

答案 0 :(得分:8)

你可以解决

 IEnumerable<ISomething>

并为每个人调用“开始”

忘了提一下,你应该首先注册ISomething的所有实现。

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

其中“assemblies”是您要注册的程序集数组。