如何“动态”编写和编译

时间:2013-04-18 19:02:57

标签: c#

我希望能够将代码编写到已经运行的程序中,当我点击UI上的发送代码按钮时,该程序将编译并实现代码。

例如:

如果我输入:

MessageBox.Show("Hello World");

点击发送,我会弹出一个说Hello World。

我已经搜索并搜索了相关方法,但我无法正常工作。

有人可以推荐一个好方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用CSharpCodeProvider,但这是一项较旧的技术,很快就会过时。

微软正在使用的最新项目是Roslyn,它目前在CTP中,它在构建C#和VB.NET应用程序时公开了Microsoft和VStudio等使用的编译器和分析系统。

以下是如何使用其内置脚本引擎的链接。

http://visualstudiomagazine.com/articles/2011/11/16/the-roslyn-scripting-api.aspx

答案 1 :(得分:1)

您要找的是CSharpCodeProvider

这允许您从源代码编译或评估C#代码并运行它。它可以在飞行中和其他过程中完成。