簡體   English   中英

Expression.Constant(值,類型)類型未知。 如何定義類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM