来自引用和非引用程序集的{Autorac加载依赖项

时间:2016-11-15 08:54:51

标签: c# autofac webapi2 autofac-module

我已经看到很多问题,即使没有直接使用,也会询问如何加载所有引用的程序集,但我想更进一步。我正在构建一个可以扩展的服务和接口,目的是我可以使用其他类型扩展Sender / Receiver,例如:接口负责发送SMS消息,并且可以有不同的适配器,比如我有两个不同的应用程序想要使用SMS,每个都有自己的ISmsAdapterISmsReplyAdapter实现,程序可能不一定被服务引用(该应用程序包含一个Windows服务和一个WebAPI服务来接收回复)。

我希望能够做的不只是注册引用程序集中的autofac模块,而且还注册模块,这些模块位于特定文件夹中,例如/ bin / plugins或类似的东西

除了Caliburn.Micro DirectoryCatalog之外,我找不到与此相关的任何内容,x = os.system("java file.java") 与我想要的内容相似

有人知道我怎么能用Autofac来实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

这不是一个Autofac问题,而是一个反思问题。 Autofac并不关心如何加载组件。

使用类似Assembly.LoadFrom的内容通过反射加载程序集,然后在Autofac中使用程序集扫描或继续使用反射手动定位程序集中的某些类型(例如,从模块继承的类型,具有特定命名约定的类型,实现某个接口的类型等)并在for循环中单独注册类型。