0
獲得lambda表達式中項目的所有PropertyInfo的最佳方法是什麼?從lambda表達式獲取propertyinfo,但失敗int
我想在sql數據庫的xml字段上設置一個過濾器。
var FilterBase = new FilterBase<SimpleItemSubObject>()
.SetSimpleFilter(x => x.ID, 123)
.SetSimpleFilter(x => x.Test.Name, "demo3");
在de分析器中,我能夠獲取Name屬性的propertyinfo。
internal IEnumerable<PropertyInfo> GetExpressionList()
{
return GetPropertyListfor(lambda.Body as MemberExpression);
}
private IEnumerable<PropertyInfo> GetPropertyListfor(MemberExpression body)
{
var result = new List<PropertyInfo>();
if (body != null && body.Expression != null)
{
result.AddRange(GetPropertyListfor(body.Expression as MemberExpression));
result.Add((body as MemberExpression).Member as PropertyInfo);
}
return result;
}
這將返回的PropertyInfo如果它是一個字符串屬性。但是在int的情況下分析器失敗,因爲lambda已經添加了一個轉換函數。
{x => Convert(x.ID)}
它增加了一個轉換函數。
那麼在這種情況下爲x.ID獲取propertyinfo的最佳方法是什麼?以及如何防止使用轉換函數
感謝。爲你的答案。我像你說的那樣剝離了轉換器。但是,感謝關於爲什麼要添加轉換的信息。 – Frans