| CodeSnippetCompileUnit unit = new CodeSnippetCompileUnit( codeSnippet ); ICodeCompiler compiler = new CSharpCodeProvider().CreateCompiler(); CompilerParameters para = new CompilerParameters(); para.ReferencedAssemblies.Add( "System.dll" ); para.GenerateInMemory = true; para.GenerateExecutable = false; para.OutputAssembly = "Eval.dll"; Assembly asm = compiler.CompileAssemblyFromDom( para , unit ).CompiledAssembly; Type type = asm.GetType( "CzG.Eval" ); MethodInfo mi = type.GetMethod( "GetValue" , BindingFlags.Public | BindingFlags.Instance ); object obj = asm.CreateInstance( "CzG.Eval" ); return mi.Invoke( obj , null ); } } ---------------------------------- 调用: Console.WriteLine( Eval.GetValue(“125 -23” ) ); Console.WriteLine( Eval.GetValue(“125<23“ ) ); Output: 102 False |