给定一个Lambda表达式:
Define(Expression<Func<T, int>> property)
并且可以像这样使用:
Define(x => x.Collection.Count)
什么是获取Count值的最佳方法?是否可以通过表达式树轻松实现,还是应该使用反射来解析树以获取PropertyInfo和GetValue()?
var propDelegate = property.Compile();
var count = propDelegate(...);
propDelegate将是一个Func<T, int>
,您可以通过传递所需的T类型对象来调用它。