using Microsoft.CSharp;
using System;
using System.CodeDom.Compiler;
using System.Reflection;
using System.Text;
namespace ConsoleApplication_C_Sharp
{
class Program
{
static void Main(string[] args)
{
string code = @"using System;
namespace C_Sharp_In_String
{
public class Code
{
public static void Main()
{"
+ "Console.WriteLine(\"c# programming\");" + @"
}
}
}";
CSharpCodeProvider codeprovider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateInMemory = true; // false - generate in external file
parameters.GenerateExecutable = true; // false - generate in dll
CompilerResults cresults = codeprovider.CompileAssemblyFromSource(parameters, code);
if (cresults.Errors.HasErrors)
{
string s = "";
foreach (CompilerError error in cresults.Errors)
{
s = String.Format("\nError ({0}): {1}\n", error.ErrorNumber,error.ErrorText);
}
throw new InvalidOperationException(s);
}
Assembly assembly = cresults.CompiledAssembly;
Type program = assembly.GetType("C_Sharp_In_String.Code");
MethodInfo method = program.GetMethod("Main");
method.Invoke(null, null);
}
}
}
/*
run:
c# programming
*/