1

假设你有这个,它被编译成一个 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 个方法。

我不确定这是否可能。

4

1 回答 1

1

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

于 2012-11-09T06:59:35.853 回答