如何遍历C#类(.NET 2.0)的属性?

The*_*des 3 c# asp.net json class .net-2.0

说我有一节课:

public class TestClass
{
  public String Str1;
  public String Str2;
  private String Str3;

  public String Str4 { get { return Str3; } }

  public TestClass()
  {
    Str1 = Str2 = Str 3 = "Test String";
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法(C#.NET 2)迭代Class'TestClass'并打印出公共变量和属性?

记得.Net2

谢谢

Håv*_*d S 9

要遍历公共实例属性:

Type classType = typeof(TestClass);
foreach(PropertyInfo property in classType.GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
  Console.WriteLine(property.Name);
}
Run Code Online (Sandbox Code Playgroud)

迭代公共实例字段:

Type classType = typeof(TestClass);
foreach(FieldInfo field in classType.GetFields(BindingFlags.Public | BindingFlags.Instance))
{
  Console.WriteLine(field.Name);
}
Run Code Online (Sandbox Code Playgroud)

如果你也想包括非公共属性,添加BindingFlags.NonPublic到的参数GetPropertiesGetFields.

  • +1是唯一直接回答问题的人.:P (2认同)