首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DynamicMethod编写脚本

使用DynamicMethod编写脚本
EN

Stack Overflow用户
提问于 2011-05-30 01:53:45
回答 2查看 756关注 0票数 9

在我看到的C# scripts using DynamicMethod Pluse一文中描述了这一点--第一次调用比使用CSharpCodeProvider快得多。

这种方法的缺点是什么?

EN

回答 2

Stack Overflow用户

发布于 2011-06-22 18:42:53

我刚读完C# Scripts using DynamicMethod的源代码

我认为最不能容忍的缺点是:太复杂了。在.Net 4.0中,我们可以像使用DynamicMethod一样,使用DLR和ironpython5%的代码行来编写脚本。DLR是较新的,这是趋势。

DLR和IronPython一些代码示例:

代码语言:javascript
复制
var scriptEngine = Python.CreateEngine();
var scriptSource = scriptEngine.CreateScriptSourceFromString(@"# coding=utf-8
def execute(command):
    exec(command)
");
scriptScope = scriptEngine.CreateScope();
scriptSource.Execute(scriptScope);
dynamic execute = scriptScope.GetVariable("execute");
execute("print 'hello world'")

只有伪代码,你必须修改上面的代码才能编译和运行。我写上面的代码是为了向你展示如果你使用DLR和Ironpython而不是DynamicMethod是多么容易。

票数 2
EN

Stack Overflow用户

发布于 2011-06-25 00:43:19

DynamicMethod需要直接编写IL。这篇文章的作者显然已经编写了自己的编译器来将C#脚本转换为可以加载到DynamicMethod中的IL,但这很可能非常脆弱。CSharpCodeProvider使用csc,与在Visual Studio (almost)中运行的编译器相同,因此它可能更可靠。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6169393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档