动态编译类库中的方法

时间:2012-11-09 06:52:01

标签: c# .net vb.net

说你有这个,它被编译成一个dll:

namespace HelloWorld
{
   public class Hello
   {
        public void WriteHello()
        {
             Console.Writeline("Hello World");
        }

        **public void WriteHello2()
        {
             Console.Writeline("Hello World2");
        }**
   }
}

我希望WriteHello2方法实际上在一个文本文件中,并在此程序中从那里编译。

原因

我想创建一个用户创建方法的界面。然后我将这个方法写入一个文本文件,因此每当程序运行时,它将读入文本文件,并执行该段代码。

示例

假设我的dll只包含1个方法,即WriteHello。 用户运行程序,然后创建一个新方法,例如WriteHello2(他不能创建任何仅限于我的应用程序的方法)。现在dll应该包含2个方法。

我不确定这是否可行。

1 个答案:

答案 0 :(得分:1)

要从字符串编译代码,可以使用CompileAssemblyFromSource方法。如果您希望保持更改,即让程序自行修改其二进制文件,事情会变得更加复杂。我不确定这是不是你想要的,但它可以通过一些聪明的临时文件杂耍和流程协调来实现。