Beispiel #1
0
        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));
            }
        }