C#反射帮助? (的GetProperties)

时间:2012-03-16 07:22:30

标签: c# reflection properties

我的代码返回一个PropertyInfo的空白数组

PropertyInfo[] classProperties = typeof(Processor).GetProperties();

此课程中的所有属性均为公共属性。 使用.NET 2.0 Framework。

我还尝试过使用我之前在代码中声明的实例:

PropertyInfo[] classProperties = Computer.Processor[0].GetType().GetProperties();

我尝试过使用Default,Instance和Public等绑定。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

无参数表单将返回公共属性。所以有两种可能的选择:

  • 它们不是属性(而是字段)
  • 他们不公开

公共财产是:使用public修饰符,b:使用getset访问者,例如:

public int Foo {get;set;} // automatically implemented property
public string bar;
public string Bar { // manually implemented property
    get { return bar; }
    set { bar = value; }
}

另请注意,只有在查询接口而不是类时,才会反映作为显式接口实现实现的接口绑定属性。因此,除非您从typeof(ISomeInterface)开始,否则不会显示以下内容:

string ISomeInterface.Bar { get { return someValue; } }