我有一个查询需要创建为字符串,通过 WCF 传输,然后在另一端编译成 LINQ。我没有通过 WCF 传输实际 LINQ 查询本身的原因是,生成查询的方法不应该知道查询中使用的源类型(即没有依赖关系)。
这就是问题所在:我将查询作为字符串通过线路传递,让 CSharpCodeProvider 尝试编译它,但它找不到查询中引用的数据源(下面代码中的serverSource)。如何创建此查询并使用 CSharpCodeProvider 进行编译?
var newQuery = @"using System.Linq;" +
"public class SIQuery" +
"{" +
"public static void Main(string[] args)" +
"{" +
"var siQuery = from e in " + serverSource + " where e % 5 == 0 select e;" +
"}" +
"}";
我已经尝试在运行时()编译之前定义serverSourcevar serverSource = application.GetStreamable<long>("serverSource");
,但这对结果没有任何影响(无法找到serverSource的事实)。
提前致谢!