C#反射获得对象所有字段
时间: 2024-11-18 19:16:22 浏览: 18
在C#中,反射是一种强大的工具,它允许你在运行时动态地获取程序集、类型、属性、字段、方法等信息。如果你想要获取一个对象的所有字段,你可以使用`System.Reflection`命名空间下的`Type`和`FieldInfo`类。以下是一个简单的示例:
```csharp
using System;
using System.Reflection;
class Program
{
public string Name { get; set; }
private int Age { get; set; }
static void Main(string[] args)
{
var obj = new YourClass(); // 替换为你需要的对象实例
Type type = obj.GetType();
FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); // 获取所有字段,包括私有
foreach (FieldInfo field in fields)
{
Console.WriteLine($"字段名称: {field.Name}, 类型: {field.FieldType}");
}
}
}
```
在这个例子中,`GetFields`方法接受一个`BindingFlags`枚举值,该值用于指定搜索哪些类型的成员。`Instance`表示只查找实例成员,`Public`和`NonPublic`则分别指代公共和非公共访问修饰符。
阅读全文