public Delegate CompileDelegate(string sourceCode, IEnumerable <string> usingNamespaces, Type returnType, IEnumerable <string> referencedAssemblies, IEnumerable <CodeParameter> parameters) { var assemblyCode = FormatAssemblySourceCode(sourceCode, usingNamespaces, returnType, parameters); referencedAssemblies = AddParameterAssemblies(referencedAssemblies, parameters); using (var compiler = new TCodeDomProvider()) { var dynamicAssembly = DynamicAssembly.CompileDynamicAssembly( assemblyCode, compiler, c => CompileAssembly(assemblyCode, referencedAssemblies, c, null)); return(DynamicAssembly.CreateDelegate(dynamicAssembly)); } }