我有以下代码,用于创建访问类属性的函数表达式。
问题在于,即使已知(在
public static Expression<Func<TObj, TProperty>> BuildGet<TObj, TProperty>(PropertyInfo property)
{
Type type = typeof(TObj);
ParameterExpression arg = Expression.Parameter(type, "x");
var prop = Expression.Property(arg, property);
return Expression.Lambda<Func<TObj, TProperty>>(prop, arg);
}
问题在于,即使已知(在
PropertyInfo
类的属性.DeclaringType
和.PropertyType
中),我仍然必须传递TObj
和TProperty
。
有没有方法可以避免显式地传递它们?
返回类型必须保持为Expression<Func<TObj,TProperty>>