ImportsSystem.Reflection ImportsSystem.CodeDom ImportsSystem.CodeDom.Compiler PublicClassSourceComp ''//编译器接口 Privatem_CompilerAsICodeCompiler ''//编译器参数 Privatem_CompilerParametersAsCompilerParameters ''//引用的程序集 Privatem_RefAssembliesAsString()={"System.dll","System.Data.dll"} ''//源代码 Privatem_SourceAsString="" ''//记录是否是默认的源代码 Privatem_Is_DefaultAsBoolean=True ''//记录编译状态 Privatem_CompiledAsBoolean=False ''//编译生成的程序集 Privatem_AssemblyAsSystem.Reflection.Assembly ''//默认源代码生成的实例 Privatem_tmpClassAsObject ''//默认源代码生成的实例函数 Privatem_MethodInfoAsSystem.Reflection.MethodInfo ''//默认源代码函数的表达式参数 Privatem_ExpressionAsString ''//返回程序集 PublicReadOnlyPropertycpAssembly()AsSystem.Reflection.Assembly Get ReturnMe.m_Assembly EndGet EndProperty SubNew() ''//获取VB编译器实例 Me.m_Compiler=NewVBCodeProvider().CreateCompiler ''//初始编译器参数 Me.m_CompilerParameters=NewCompilerParameters WithMe.m_CompilerParameters .GenerateExecutable=False''//False值指定编译为类集,True编译为可执行程序 .GenerateInMemory=False''//只在内存中生成程序集,不输出到磁盘 ''//添加默认的程序集 Me.Add_CompilerParameters() EndWith EndSub ''//添加要引用的程序集 PrivateSubAdd_CompilerParameters() Me.m_CompilerParameters.ReferencedAssemblies.AddRange(Me.m_RefAssemblies) EndSub ''//添加指定的引用程序集 PublicSubAdd_CompilerParameters(ByValRefAssembliesAsString()) Me.m_RefAssemblies=RefAssemblies Me.m_CompilerParameters.ReferencedAssemblies.Clear()''//清除原有的程序集,重复引用编译会产生异常 Me.Add_CompilerParameters() EndSub ''//生成默认的源代码 ''//类名:tmpClass ''//函数名:GetExpressionValue,参数:Expression,参数类型:字符串 ''//主要功能:返回表达式Expression的值,返回值类型:Object