4

.NET 框架是否有任何类允许您运行(编译、解释或其他)包含 C# 代码的外部脚本文件?

例如,如果我有一个Hello.cs包含以下内容的文件:

class Hello
//This program displays Hello World
{
    static public void Main()
    {
        System.Console.WriteLine("Hello World");
    }
}

我如何从winform、应用程序中加载上面的代码并执行它?

我对加载/执行逻辑感兴趣;该程序可以是任何东西,从控制台应用程序到另一个 winform 应用程序。

反射是否允许这样做?

4

3 回答 3

3

查看以下文章:C#:使用动态编译编写可扩展的应用程序

于 2012-04-30T23:34:57.673 回答
2

.NET 框架是否有任何类允许您运行(编译、解释或其他)包含 C# 代码的外部脚本文件?

是的,您可以使用CodeDomProvider类。

我如何从winform、应用程序中加载上面的代码并执行它?

那么,使用上述类编译 C# 代码后,您可以使用ProcessStartInfo该类并将其作为类Start方法的参数传递Process,然后读取StandardOutput流,将其存储在字符串中并根据需要显示Console.Write()MessageBox.Show()等等。

于 2012-04-30T23:45:50.757 回答
2

我会检查 Roslyn API。只要您提供有效的 C# 或 VB.NET 代码,您就可以为所欲为。

于 2012-05-02T21:21:26.233 回答