从泛型类属性转换而来

时间:2017-09-10 11:39:48

标签: c# generics expression

我想从propertyType的泛型类强制转换而不知道该怎么做。

我想做这样的事情:

var key = Expression.Property(genericType, rule.ComparisonPredicate);
Type propertyType = typeof(T).GetProperty(rule.ComparisonPredicate).PropertyType;                                              
var converter = TypeDescriptor.GetConverter(propertyType);
var value = Expression.Constant((propertyType)converter.ConvertFromString(rule.ComparisonValue) );

但是在行var值中我得到了一个错误:

  

'propertyType'是一个变量,但用作类型

2 个答案:

答案 0 :(得分:0)

你不能转换为变量,你应该指定一个真实的类型

var value = Expression.Constant(( propertyType )converter.ConvertFromString(rule.ComparisonValue));

答案 1 :(得分:0)

尝试转换属性类型

(Type)typeof(T).GetProperty(rule.ComparisonPredicate).PropertyType