我试图在这里进行一些非常动态的查询 - 最好不要在运行时调用编译器.
我有一个包含LINQ表达式的字符串,例如
var s = "from a in queryable where a.Type == 1 select a";
Run Code Online (Sandbox Code Playgroud)
如何从中获得由此产生的IQueryable或表达式?
我见过LINQPad和RavenDb都这样做,所以我确信有一种方法,我还没有找到它.
考虑到不应该重新评估相当静态的数据而是缓存,我想知道是否可以使用Reflection获取一次类属性,然后缓存它们以便我可以动态评估对象属性和读取/赋值,但不是每次我这样做都会有反射开销.这可能吗(示例代码?)?
为了澄清一点,让我说我有这个类:
public class Cloud
{
Boolean IsWhite;
}
Run Code Online (Sandbox Code Playgroud)
而我正在尝试制作一个方法,允许我做这样的事情(伪代码):
Update(myCloudInstance, new {IsWhite, true});
Run Code Online (Sandbox Code Playgroud)
如果现在知道已经知道Cloud的属性(typeof(myCloudInstance)),则应首先检查缓存,然后使用缓存信息将属性"IsWhite"赋值为"true",而不是再次执行Reflection.
关于如何做到这一点的任何想法?