trying to compile and execute C# code programmatically
<p>The following is my code :</p>

<pre><code>`using System;
using System.Collections.Generic;
using System.Text;

using System.CodeDom.Compiler;
using System.IO;
using Microsoft.CSharp;
using System.Reflection;

namespace DynaCode
{

class Program
{

    static void Main(string[] args)
    {

        string content = File.ReadAllText(@"D:\hi.cs");
        string[] code = new string[content.Length];
        char[] seperators = { '\n','\r','\t' };
        code = content.Split(seperators);


        CompileAndRun(code);

        Console.ReadKey();

    }

    static void CompileAndRun(string[] code)
    {
        CompilerParameters CompilerParams = new CompilerParameters();
        string outputDirectory = Directory.GetCurrentDirectory();

        CompilerParams.GenerateInMemory = true;
        CompilerParams.TreatWarningsAsErrors = false;
        CompilerParams.GenerateExecutable = false;
        CompilerParams.CompilerOptions = "/optimize";

        string[] references = { "System.dll"};

        CompilerParams.ReferencedAssemblies.AddRange(references);

        CSharpCodeProvider provider = new CSharpCodeProvider();
        CompilerResults compile = provider.CompileAssemblyFromSource(CompilerParams, code);

        if (compile.Errors.HasErrors)
        {
            string text = "Compile error: ";
            foreach (CompilerError ce in compile.Errors)
            {
                text += "rn" + ce.ToString();
            }
            throw new Exception(text);
        }

        //ExpoloreAssembly(compile.CompiledAssembly);

        Module module = compile.CompiledAssembly.GetModules()[0];
        Type mt = null;
        MethodInfo methInfo = null;

        if (module != null)
        {
            mt = module.GetType("DynaCore.DynaCore");
        }

        if (mt != null)
        {
            methInfo = mt.GetMethod("Main");
        }

        if (methInfo != null)
        {
            Console.WriteLine(methInfo.Invoke(null, new object[] { "here in dyna code" }));
        }
    }

    static void ExpoloreAssembly(Assembly assembly)
    {
        Console.WriteLine("Modules in the assembly:");
        foreach (Module m in assembly.GetModules())
        {
            Console.WriteLine("{0}", m);

            foreach (Type t in m.GetTypes())
            {
                Console.WriteLine("t{0}", t.Name);

                foreach (MethodInfo mi in t.GetMethods())
                {
                    Console.WriteLine("tt{0}", mi.Name);
                }
            }
        }
    }
}
}` 
</code></pre>

<p>The contents of the hi.cs file is as follows:</p>

<pre><code>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;



namespace DynaCore
{
class DynaCore
{
    static public void Main(string[] args)
    {

     Console.WriteLine("hello, this is good");

    }
}
}
</code></pre>

<p>This is the error I get when I try to run this program:</p>

<p>System.Exception was unhandled
  Message="Compile error: rnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.16.cs(1,19) : error CS1514: { expectedrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.16.cs(1,19) : error CS1513: } expectedrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.18.cs(1,1) : error CS0116: A namespace does not directly contain members such as fields or methodsrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.20.cs(1,19) : error CS1514: { expectedrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.20.cs(1,19) : error CS1513: } expectedrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.20.cs(1,11) : error CS0101: The namespace '' already contains a definition for 'DynaCore'rnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.22.cs(1,5) : error CS0116: A namespace does not directly contain members such as fields or methodsrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.24.cs(1,23) : error CS1518: Expected class, delegate, enum, interface, or structrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.24.cs(1,40) : error CS1001: Identifier expectedrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.24.cs(1,42) : error CS1518: Expected class, delegate, enum, interface, or structrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.26.cs(1,9) : error CS0116: A namespace does not directly contain members such as fields or methodsrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.30.cs(1,10) : error CS0116: A namespace does not directly contain members such as fields or methodsrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.35.cs(1,9) : error CS1022: Type or namespace definition, or end-of-file expectedrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.37.cs(1,5) : error CS1022: Type or namespace definition, or end-of-file expectedrnc:\Documents and Settings\simonjef\Local Settings\Temp\mftbafdt.39.cs(1,1) : error CS1022: Type or namespace definition, or end-of-file expected"
  Source="Compiling"
  StackTrace:
       at DynaCode.Program.CompileAndRun(String[] code) in C:\Documents and Settings\simonjef\My Documents\Visual Studio 2008\Projects\Compiling\Compiling\Program.cs:line 72
       at DynaCode.Program.Main(String[] args) in C:\Documents and Settings\simonjef\My Documents\Visual Studio 2008\Projects\Compiling\Compiling\Program.cs:line 42
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: </p>

<p>Please help.</p>

<p>Thank you.</p>
