autofacc从引用和非引用程序集加载依赖项
本文关键字:引用 加载 依赖 程序集 autofacc | 更新日期: 2023-09-27 18:17:52
我已经看到了许多问题,询问如何加载所有引用程序集,即使不直接使用,但我想采取进一步的步骤。我正在构建一个可以扩展的服务和接口,目的是我可以用额外的类型扩展Sender/Receiver,例如:接口负责发送SMS消息,可以有不同的适配器,假设我有两个不同的应用程序想要使用SMS,每个应用程序都有自己的ISmsAdapter
和ISmsReplyAdapter
的实现,这些程序集可能不一定被服务引用(应用程序由Windows服务和WebAPI服务组成,以接收回复)。
我想要能够做的不仅仅是注册我的autofac模块在引用的程序集,但也注册模块在程序集说一个特定的文件夹,如/bin/plugins或类似的东西
我没有找到任何与此相关的东西,除了Caliburn.Micro
,它有一个DirectoryCatalog
,它的功能与我想要的相似
有谁知道我如何能够实现这一点与autoface请?
这不是一个真正的autoface问题,而是一个反思问题。Autofac不关心你如何加载程序集。
使用类似Assembly的东西通过反射加载程序集。LoadFrom,然后在Autofac中使用程序集扫描或继续使用反射来手动定位程序集中的某些类型(例如从模块继承的类型,具有特定命名惯例的类型,实现特定接口的类型等),并在for循环中分别注册这些类型。