首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# PropertyInfo

C# PropertyInfo
EN

Stack Overflow用户
提问于 2011-06-14 23:02:12
回答 6查看 1.2K关注 0票数 1

我可以像这样得到PropertyValues

代码语言:javascript
复制
Type mytype=typeof(TextBox);

foreach(PropertyInfo myinfo in mytype.GetProperties())
{
ListBox1.Items.Add(myinfo.Name);
}

但是有些属性有子属性,我如何找到i属性的子属性呢?

(属性下的示例Devexpress LookUpEdit组件DataSource、DisplayMember e.t.c属性)谢谢

EN

回答 6

Stack Overflow用户

发布于 2011-06-14 23:05:48

对PropertyInfo.PropertyType.GetProperties执行相同的循环(递归)

票数 2
EN

Stack Overflow用户

发布于 2011-06-14 23:05:17

您可以使用PropertyType属性来查找属性的类型,然后以与检查TextBox属性相同的方式来检查这些子属性。

代码语言:javascript
复制
Type mytype=typeof(TextBox);
foreach(PropertyInfo myinfo in mytype.GetProperties())
{
    ListBox1.Items.Add(myinfo.Name);
    if(myinfo.Name == "Parent")
    {    
        PropertyInfo subProperty = typeof(Control).GetProperty("Name")
        if(subProperty != null)
            // Do some more stuff here
    }
}
票数 1
EN

Stack Overflow用户

发布于 2011-06-14 23:06:44

您需要访问myinfo对象的PropertyType属性,然后使用GetProperties()从那里获取子属性。

代码语言:javascript
复制
foreach(PropertyInfo myinfo in mytype.GetProperties())
{ 
    ListBox1.Items.Add(myinfo.Name);
    foreach(PropertyInfo mychildren in myinfo.PropertyType.GetProperties())
    {
       //do whatever with them
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6345647

复制
相关文章

相似问题

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