首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取当前属性的PropertyDescriptor?

如何获取当前属性的PropertyDescriptor?
EN

Stack Overflow用户
提问于 2011-01-18 18:17:18
回答 4查看 35.6K关注 0票数 13

如何获取当前属性的PropertyDescriptor?例如:

代码语言:javascript
复制
[MyAttribute("SomeText")]
public string MyProperty
{
    get{....}
    set
    {
        // here I want to get PropertyDescriptor for this property.
    }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-18 18:32:11

你可以试试这个:

代码语言:javascript
复制
        public string Test
        {
            get
            {
                //Get properties for this
                System.ComponentModel.PropertyDescriptorCollection pdc = System.ComponentModel.TypeDescriptor.GetProperties( this );

                //Get property descriptor for current property
                System.ComponentModel.PropertyDescriptor pd = pdc[ System.Reflection.MethodBase.GetCurrentMethod().Name ];
            }
        }
票数 16
EN

Stack Overflow用户

发布于 2014-10-15 05:47:19

这是一个可重用的转换函数,适用于那些在这篇文章中寻找通用函数的人:

代码语言:javascript
复制
public static PropertyDescriptor GetPropertyDescriptor(PropertyInfo PropertyInfo)
{
    return TypeDescriptor.GetProperties(PropertyInfo.DeclaringType).Item(PropertyInfo.Name);
}

下面是一个扩展方法:

代码语言:javascript
复制
public static PropertyDescriptor PropertyDescriptor(this PropertyInfo propertyInfo)
{
  return TypeDescriptor.GetProperties(propertyInfo.DeclaringType)[propertyInfo.Name];
}
票数 11
EN

Stack Overflow用户

发布于 2011-04-01 10:03:53

我发现下面的方法是有效的:

代码语言:javascript
复制
        //  get property descriptions
        PropertyDescriptorCollection properties = TypeDescriptor.GetProperties ( this );

        //  get specific descriptor
        PropertyDescriptor property = properties.Find ( PropertyName, false );

其中PropertyName是传递到方法中的值。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4722876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档