Example #1
0
        public static DynCompile CompileCSCode(string csCode, string className, string[] refAssemblies = null)
        {
            if (refAssemblies == null)
            {
                refAssemblies = new string[] { "System.dll" }
            }
            ;

            var dyn = new DynCompile()
            {
                ClassName = className
            };

#if !NETCOREAPP3_0 && !NETSTANDARD2_0 && !NETSTANDARD2_1
            CodeDomProvider csharpCodeProvider = new CSharpCodeProvider();
            var             cp = new CompilerParameters();
            foreach (string asmName in refAssemblies)
            {
                cp.ReferencedAssemblies.Add(asmName);
            }

            cp.GenerateExecutable = false;
            cp.GenerateInMemory   = true;

            try
            {
                CompilerResults cr = csharpCodeProvider.CompileAssemblyFromSource(cp, csCode);

                dyn.Assembly = cr.CompiledAssembly;
            }
            catch (Exception ex) { dyn.LastError = ex; }
#endif
            return(dyn);
        }
Example #2
0
        public static void Test()
        {
            var dyn = DynCompile.CompileCSCode(
                DynCompile.GenCalc(@"return ""Hello cs world"";"), DynCompile.DynClass, null);

            Console.WriteLine(dyn.Calculate("Calc"));
            var dyn2 = DynCompile.GetCalc(@"return ""Hello Calc object"";");
        }