说你有这个,它被编译成一个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个方法。
我不确定这是否可行。
答案 0 :(得分:1)
要从字符串编译代码,可以使用CompileAssemblyFromSource
方法。如果您希望保持更改,即让程序自行修改其二进制文件,事情会变得更加复杂。我不确定这是不是你想要的,但它可以通过一些聪明的临时文件杂耍和流程协调来实现。