を指し、 -name(SomeProperty
)この小さなスニペットにより、(インターネットからの長い時間のエゴを得た):t => (t.Some1 As Object)
は、参照するプロパティではありません。式 `トン=>(オブジェクトとしてt.SomeProperty)は`私はいくつかのコードでこの式を作成している方法ではなく、プロパティ
public static PropertyInfo GetPropertyInfo<TSource, TProperty>
(TSource source, Expression<Func<TSource, TProperty>> propertyLambda) {
var type = typeof(TSource);
var member = propertyLambda.Body as MemberExpression;
if (member == null)
throw new ArgumentException($"Expression '{propertyLambda}' refers to a method, not a property.");
var propInfo = member.Member as PropertyInfo;
if (propInfo == null)
throw new ArgumentException($"Expression '{propertyLambda}' refers to a field, not a property.");
if (type != propInfo.ReflectedType && !type.IsSubclassOf(propInfo.ReflectedType))
throw new ArgumentException($"Expresion '{propertyLambda}' refers to a property that is not from type {type}.");
return propInfo;
}
しかし、あなたが知っているように、propertyLambda.Body as MemberExpression
はこれを引き起こし、常にnullです。この場合、プロパティ名を取得する方法はありますか?