CodeDomProvider不能识别Linq语法
用CodeDomProvider来编译代码,如果代码中有使用Linq的语法,编译不能通过,不知道如何解决。
部分代码如下:
CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp");
CompilerParameters compilerParams = new CompilerParameters();
compilerParams.CompilerOptions = "/target:library /optimize";
compilerParams.GenerateExecutable = false;
compilerParams.GenerateInMemory = false;
compilerParams.IncludeDebugInformation = false;
compilerParams.ReferencedAssemblies.Add("mscorlib.dll");
compilerParams.ReferencedAssemblies.Add("System.dll");
compilerParams.ReferencedAssemblies.Add("System.Data.Linq.dll");
compilerParams.ReferencedAssemblies.Add("System.Xml.Linq.dll");
compilerParams.ReferencedAssemblies.Add("System.Core.dll");
compilerParams.ReferencedAssemblies.Add("System.Data.DataSetExtensions.dll");
......
//我在这里加入了全部可能使用到的dll
CompilerResults results = codeProvider.CompileAssemblyFromSource(compilerParams, SourceCode);
如果SourceCode中使用Linq的语法,编译失败。
例如:
using System.Dictionary;
public static class Test
{
public static object Execute(object[] objs)
{
public List<Formula> mFormulas = null;
mFormulas = (from f in Global.mDictionaryDataContext.Formulas
select f).ToList(); //这条语句不能编译通过,报约7个语法错误
......
}
}