相关疑难解决方法(0)

使用反射获取属性的字符串名称

那里有大量的反思例子可以让你得到:

    1.班级中的所有属性

    2.单个属性,前提是您知道字符串名称

有没有办法(使用反射,TypeDescriptor或其他方法)在运行时获取类中属性的字符串名称,前提是我拥有​​的是类和属性的实例?

编辑 我知道我可以使用反射轻松获取类中的所有属性,然后获取每个属性的名称.我要求的是一个函数来给我一个属性的名称,前提是我传递了属性的实例.换句话说,如何从class.GetType().GetProperty(myProperty)中找到PropertyInfo []数组返回给我的属性,以便从中获取PropertyInfo.Name?

c# reflection propertyinfo

46
推荐指数
4
解决办法
6万
查看次数

给定一个Member Access lambda表达式,将其转换为具有完全访问路径的特定字符串表示

鉴于

Expression<Func<T, object>> 
Run Code Online (Sandbox Code Playgroud)

(例如x => x.Prop1.SubProp),我想根据需要创建一个字符串"Prop1.SubProp".

在单次访问的情况下(例如x => x.Prop1),我可以轻松地执行以下操作:

MemberExpression body = (expression.Body.NodeType == ExpressionType.Convert) ? (MemberExpression)((UnaryExpression)expression.Body).Operand : (MemberExpression)expression.Body;
return body.Member.Name;
Run Code Online (Sandbox Code Playgroud)

但是,如果存在更深的嵌套,例如x => x.Prop1.SubProp1,则只获得嵌套最深的名称,例如"SubProp1"而不是"Prop1.SubProp1"

反正有没有访问lambda表达式的完整属性路径?

.net c# linq

29
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×2

.net ×1

linq ×1

propertyinfo ×1

reflection ×1