在程序中运行外部C#文件

时间:2012-04-30 23:32:17

标签: .net winforms c#-4.0 reflection

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

例如,如果我有一个包含此文件的文件Hello.cs

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

如何在winform,app中加载上面的代码并执行它?

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

反射是否允许这样做?

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

  

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

是的,您可以使用CodeDomProvider类。

  

如何在winform,app和执行中加载上面的代码   它?

好吧,在使用上面的类编译C#代码之后,您可以使用ProcessStartInfo类并将其作为Start类的Process方法的参数传递,然后阅读{{ 3}} stream,将其存储在字符串中并根据需要显示Console.Write()MessageBox.Show()等。

答案 2 :(得分:2)

我会检查Roslyn API。只要提供有效的C#o VB.NET代码,就可以按照自己的意愿行事。