加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用Roslyn动态编译控制器

发布时间:2020-12-16 07:16:20 所属栏目:asp.Net 来源:网络整理
导读:随着Roslyn CTP的公开化,除了编写c#脚本之外,我们可以尝试考虑我们可以用它做的很酷的事情. 由于asp.net mvc允许你编写自定义控制器工厂,我们可以编写一个工厂 即时编译源文件中的控制器 将新创建的类型加载到运行时(运行时可以处理吗?) 如果以前对同一控制
随着Roslyn CTP的公开化,除了编写c#脚本之外,我们可以尝试考虑我们可以用它做的很酷的事情.

由于asp.net mvc允许你编写自定义控制器工厂,我们可以编写一个工厂

>即时编译源文件中的控制器
>将新创建的类型加载到运行时(运行时可以处理吗?)
>如果以前对同一控制器的请求已经完成,则取代之前的类型

这将允许我们快速原型化或更改控制器,因为您可以简单地编写代码,controllerfactory将获取更改而无需重新编译.

解决方法

几个月前,我已经使用monos编译器作为服务实现了运行时控制器.

你可以在这里找到信息并链接到github上的代码:http://www.fusonic.net/en/blog/2011/04/01/scripting-asp-net-mvc-controllers-at-runtime/

虽然它在开始时看起来非常好,但由于存在一些限制,它在现实世界中并不是非常有用.

首先,Visual Studio位于您和您的代码中间,因为它严格锁定并禁止在调试时更改源代码.因此,编辑源文件的唯一方法是在没有附加调试器的情况下运行.

第二个问题是它(显然)仅限于控制器.一旦在运行时开始编辑控制器,就需要一个真正的脚本环境!例如,在运行时更改模型,服务以及项目中的任何代码.

那么你有问题,你不能调试你的动态代码,等等……

几天后我停止使用它,因为它不是一个完整的解决方案.
我梦想着.net的解决方案,整个mvc项目可以在运行时动态编译,不仅限于控制器(如真正的脚本框架),还包括调试.

在java世界中有一个解决方案:http://zeroturnaround.com/jrebel/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读