有没有办法从该属性的 getter 中获取 PropertyInfo?

Posted

技术标签:

【中文标题】有没有办法从该属性的 getter 中获取 PropertyInfo?【英文标题】:Is there any way to get the PropertyInfo from the getter of that property? 【发布时间】:2011-03-29 20:20:08 【问题描述】:

有什么方法可以从它的 getter 中获取属性的 PropertyInfo 吗?像这样:

public object Foo

    get
    
        PropertyInfo propertyInfoForFoo = xxx;
        ...
    

我想避免将属性名称硬编码为字符串,因为这很难维护。

我正在使用 .NET 2.0,所以我希望有一个无 linq 的解决方案。

【问题讨论】:

How to get current property name via reflection? 的可能重复项 【参考方案1】:

MethodBase.GetCurrentMethod() 将返回 get_YourPropertyName 的 MethodInfo 对象。

PropertyInfo property = GetType()
                            .GetProperty(MethodBase
                                             .GetCurrentMethod()
                                             .Name
                                             .Substring("get_".Length)
                                        );

【讨论】:

【参考方案2】:

嗯...那么你打算如何被“给予”吸气剂?

我看到的唯一方法是MyGetProperyInfo(x => x.Foo);

可以做到,尽管它需要一个 lambda 和一个表达式(在 C# v2 中都没有)

【讨论】:

Lambda 在 c# 2 中可用,但在 linq 中不可用。不确定表达式. @JOnB: Expression 和所有子类型都在 System.Core 程序集中实现,并在 .NET 3.5 中添加。

以上是关于有没有办法从该属性的 getter 中获取 PropertyInfo?的主要内容,如果未能解决你的问题,请参考以下文章

为什么分类不能添加属性?

有没有办法为 MaterialButton 的 iconTint 设置 MotionLayout 自定义属性?

从该 iframe 中获取 iframe 属性的值

从 getter 中获取选定的属性

读取 JAR 文件外的属性文件

有没有办法在 Eclipse 中自动生成 getter 和 setter?