public interface IScriptExport { void RegisterExports(); } public class TypeToExport { public void TestMethod() { return; } } public class Exporter { public void Export() { string[] source = { "foobar", "foobaz", "bar", "foo" }; CSharpCodeProvider compiler = new CSharpCodeProvider(); CompilerResults results = new CompilerResults(); results = compiler.CompileAssemblyFromSource(new System.CodeDom.Compiler.CompilerParameters(), source); if (results.Errors == 0) { Assembly exportAsm = results.CompiledAssembly; Type exportType = exportAsm.GetType("PlayerExport"); IScriptExport exporter = (IScriptExport)Activator.CreateInstance(exportType); exporter.RegisterExports(); } } }