在不重新启动 Web 应用程序的情况下加载 MEF 插件
Loading MEF plugins without restarting web application
我正在 .NET 中开发一个 Web 应用程序,该应用程序在后端(Web api)中使用通过 MEF 加载的插件。在 Web API 中,我使用 Autofac DI 和 MEF 加载插件。
我遇到的问题是如何在不重新启动 Web 应用程序 (Azure) 或 IIS 池的情况下替换生产中的插件。
我什至计划将每个插件托管为一个 Web 服务,以便应用程序不依赖于插件。
Recomposition就是答案。
简而言之:
- 使用 allow-recomposition 标记您的插件导入
- 每次出现新插件或现有插件消失时,MEF 都会触发重新导入
您可以在此处找到更多样本:
我正在 .NET 中开发一个 Web 应用程序,该应用程序在后端(Web api)中使用通过 MEF 加载的插件。在 Web API 中,我使用 Autofac DI 和 MEF 加载插件。 我遇到的问题是如何在不重新启动 Web 应用程序 (Azure) 或 IIS 池的情况下替换生产中的插件。 我什至计划将每个插件托管为一个 Web 服务,以便应用程序不依赖于插件。
Recomposition就是答案。
简而言之:
- 使用 allow-recomposition 标记您的插件导入
- 每次出现新插件或现有插件消失时,MEF 都会触发重新导入
您可以在此处找到更多样本: