![](/img/trans.png)
[英]How to use Expression.Constant(object value, Type type)?
[英]Expression.Constant(value, type) type is unknown. How to define the type
所以問題是我有以下行wehre 值是一個字符串
var filterValue = Expression.Constant(value, property.Type);
如果property.Type是一個字符串一切都很好但是類型真的可以是任何東西,比如十進制?
我不知道如何使這項工作適用於我有這個功能的所有不同類型
private static T Parse (string value) { return (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(value); }
使用它我可以這樣做:
var newValue = Parse(value); var filterValue = Expression.Constant(newValue, property.Type);
但是我想提前知道這種類型,我試過了
var newValue = Parse(value);
但那不起作用
有任何想法嗎?
您根本不需要知道類型:
object value = TypeDescriptor.GetConverter(property.Type).ConvertFromString(value);
var filterValue = Expression.Constant(value, property.Type);
在這種情況下,泛型方法不合適(或不需要)。
您可能需要特殊處理null
,但是 - 或者根本不允許它( property.Type
)可能是int?
等等...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.