2012-12-16 161 views
-1

比方说你有:
PropertyInfo propInfo; //假设它已经被初始化为私人领域
private int m_Number如何通过反射属性获取变量/字段名称?

的财产,如果我会做propInfo.PropertyType.Name我想我会得到类似int32int
两个问题:

。如何通过propInfo提取变量名“m_Number”。
注意:一旦我能够通过迭代FieldInfo而不是propInfo来完成此操作。

。如果我想用反射来知道给定类别的所有领域,应该采用什么样的正确方法:

A。遍历所有属性(假设每个字段都有属性)
B。直接遍历所有字段。

感谢

回答

1

的属性没有必然的关系,以现场 - 事实上,物业是不是一对功能之上的语法糖多一点。

如果您的代码使用某种约定来命名支持属性的变量(例如在您的示例中将它们预先设置为m_),则可以依赖该约定来检索变量名称。在所有其他情况下,没有直接连接,也无法通过反射API检索该关系。

+0

我不确定我是否理解你关于'm_'的注释。我不能假设每个字段都以m_开头,这仅仅是一个例子。无论如何,你认为直接迭代字段更好吗? (只有这些字段是我在使用反射调查的类实例中的主要兴趣点) – JavaSa

+1

@JavaSa在属性和字段之间没有找到连接的方法。如果你的主要兴趣是领域,那么你应该从字段列表开始,并试图从中推导出属性的名称。但是,由于没有直接关系,因此您可以找到没有属性的字段以及没有字段的属性。 – dasblinkenlight

相关问题