0

我是 autofac 的新手,在我的项目中使用 .net 5-6,我在不同的模块中构建了我的应用程序,这些模块在应用程序启动时加载(使用 alc)。但我想知道 autofac 是否可以在运行时加载/卸载这些完整的应用程序插件。很像 wordpress 等的设计方式。

你加载一个包含所有插件 dll/文件的 zip 文件并在运行时管理它的信息?包括服务和中间件初始化。

4

1 回答 1

0

Autofac 不执行程序集加载、插件管理等工作。这取决于您的应用程序代码。如果您将插件管理为 zip 文件或充满程序集的文件夹或其他任何内容,则取决于您的应用程序

  • 执行任何文件操作 - 解压缩、移动、定位。
  • 将程序集加载到内存中 -Assembly.Load或其他任何东西。
  • 处理运行时尚未处理的任何参考问题 - 缺少依赖程序集等。

然后,您可以使用标准 Autofac 界面进行注册。

关键是,Autofac 不是插件框架,它是DI 容器。DI 之外的任何事情都取决于您。即使您正在考虑程序集扫描逻辑,Autofac 也不会加载或定位程序集 - 它只是扫描您已经加载的程序集。

于 2022-02-23T15:03:02.497 回答