在C#中,有没有在运行时确定类的成员?

jtb*_*jtb 3 c# .net-3.5

假设我有一个名为foo的类,它有3个公共成员foo1,foo2和foo3.

现在假设我正在编写一个函数,它将类foo的实例作为参数,但是当我编写这个函数时,我不知道它有哪些公共成员.

有没有办法让我在运行时确定它有公共成员foo1,foo2,foo3 和ONLY foo1,foo2,foo3.IE - 找出所有公共成员是什么?

我还可以确定他们的类型吗?

Rad*_*094 6

好吧,这就是Reflection的用途:

Type myObjectType = typeof(foo);

System.Reflection.FieldInfo[] fieldInfo = myObjectType.GetFields();
foreach (System.Reflection.FieldInfo info in fieldInfo)
   Console.WriteLine(info.Name); // or whatever you desire to do with it
Run Code Online (Sandbox Code Playgroud)