帖段我的源码好了
CSharpCodeProvider provider = new CSharpCodeProvider();
//指定待编译上下文
string[] source ={ GetContext() };
//配置编译参数
CompilerParameters p = new CompilerParameters();
//待编译文件的全部引用
p.ReferencedAssemblies.Add("System.dll");
p.ReferencedAssemblies.Add("System.Drawing.dll");
//开始编译,返回编译结果
CompilerResults cr =
provider.CompileAssemblyFromSource(p, source);
GetContext()就是要编译的程序,可以直接读某个.cs文件,也可以是一堆逻辑处理后
动态生成的。
编译完后
Type t = cr.CompiledAssembly.GetTy("YourClassName");
//生成实例
object obj = Activator.CreateInstance(t);
//得到方法
MethodInfo mInfo = obj.GetType().GetMetho("YourMethod",
BindingFlags.Instance | BindingFlags.Public);
//执行
object ptr = mInfo.Invoke(obj,
new object[] { _data1,_data2 });
【 在 nilnulcom (nilnul) 的大作中提到: 】
: 正想了解。能详细说说么?