using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;
using System.Windows.Forms;
...
string code = "String to compile";
CSharpCodeProvider cProv = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Windows.Forms.dll");
cp.ReferencedAssemblies.Add("System.Data.dll");
cp.ReferencedAssemblies.Add("System.Drawing.dll");
cp.ReferencedAssemblies.Add("System.Management.dll");
cp.ReferencedAssemblies.Add("System.Deployment.dll");
cp.ReferencedAssemblies.Add(typeof(System.Linq.IQueryable).Assembly.Location);
cp.GenerateExecutable = false;
cp.GenerateInMemory = true;
CompilerResults cResults = cProv.CompileAssemblyFromSource(cp, code);
TextBox response = new TextBox();
object obj = cResults.CompiledAssembly.CreateInstance("Compile.Code");
Type t = obj.GetType();
object[] arg = { response };
t.InvokeMember("Main", BindingFlags.InvokeMethod, null, obj, arg);
string responseText = response.Text;Simple code to compile
using System;
using System.Windows.Forms;
namespace Compile
{
public class Code
{
public void Main(TextBox text)
{
text.Text = "Message Box";
MessageBox.Show("Test");
}
}
}
0 comments:
Post a Comment