gpt4 book ai didi

c# - 如何在不重启 AppDomain 的情况下在运行时将模块添加到 MVC4

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:19 25 4
gpt4 key购买 nike

我正在开发一个 Multi-Tenancy MVC4 网络门户,旨在托管动态生成的 MVC4 应用程序。

用例:客户端使用网络门户上传 xml 规范。规范被传递到生成 mvc4 应用程序的 Web 服务,对其进行编译并将一个 zip 文件返回到包含 View 、css、javascript 和 dll(已编译的 c# 代码)的门户。然后,门户解压缩收到的 zip 文件并将其内容放在门户本身内的文件夹(模块)中。然后客户端可以浏览新“部署”的应用程序。可以部署同一应用程序的多个版本,我计划为每个部署使用不同的命名空间。注意:生成的模块有一些依赖项,将由 Web 门户使用 DI 注入(inject)器注入(inject)(正在考虑使用 ninject)

我对如何构建模块化 MVC 应用程序进行了大量研究。我查看了 MVC 领域,对 MEF、DI 框架做了一些研究,查看了 nopCommerce 和 Orchard 代码。我似乎无法找到答案的一件事是如何在运行时添加模块而不需要重新启动 AppDomain?另外,有没有一种简单的方法可以在运行时为每个模块注册路由?

我试图避免应用重启,因为可能有其他人在使用门户/部署的模块,而其他人正在上传新规范。

最佳答案

你看过this吗? (只是有点过时了)教程?它不会解决重新扫描模块的问题,但引入的 PluginAreaBootstrapper 类似乎是一个好的开始。也许您可以针对系统中的特定事件运行 PluginAreaBootstrapperInit() 方法(我们称它为 OnNewModuleDeployed)。

关于c# - 如何在不重启 AppDomain 的情况下在运行时将模块添加到 MVC4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15436073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com