0
ラムダ式の項目のすべてのPropertyInfoを取得する最適な方法は何ですか?lambda式からpropertyinfoを取得しますが、intで失敗します
私はSQLデータベースのxmlフィールドにフィルタを設定します。
var FilterBase = new FilterBase<SimpleItemSubObject>()
.SetSimpleFilter(x => x.ID, 123)
.SetSimpleFilter(x => x.Test.Name, "demo3");
アナライザーでは、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の場合、ラムダが変換関数を追加したため、アナライザは失敗します。
{x => Convert(x.ID)}
変換機能が追加されました。
この場合、x.IDのpropertyinfoを取得する最も良い方法は何ですか。どのようにして変換関数の使用を防止するのですか?
感謝:
もう一つの方法は、最初
Convert
あればあるような方法を維持し、取り除くことです。あなたの答えです。あなたが言ったように私は改宗者を取り除いた。しかし、convertが追加された理由についての情報に感謝します。 – Frans