ICodeCompiler compiler = new CSharpCodeProvider().CreateCompiler();GenerateInMemory=true)。compiler.CompileAssemblyFromSource(cp, source) 編譯。result.CompiledAssembly.CreateInstance("MyClass") 建立實例。method.Invoke(instance, null)。StringBuilder sb = new StringBuilder();
sb.Append("using System; ");
sb.Append("public class MyClass { public string HelloWorld() { return \"Hello,world\"; } }");
CompilerResults result = compiler.CompileAssemblyFromSource(cp, sb.ToString());
object obj = result.CompiledAssembly.CreateInstance("MyClass");
MethodInfo mi = obj.GetType().GetMethod("HelloWorld");
Console.WriteLine(mi.Invoke(obj, null)); // 輸出 Hello,world
適用場景:依資料庫結構動態生成實體類別、規則引擎、腳本化擴充。