C#反射获得对象所有属性
时间: 2024-11-18 18:27:21 浏览: 0
什么是序列化-C#__序列化与反射
在C#中,反射是一种强大的工具,它让你可以在运行时检查、操作程序集、类型、字段、属性、事件等。要获取对象的所有属性,你可以使用`System.Reflection`命名空间下的`GetProperty`方法。下面是一个简单的示例:
```csharp
using System;
using System.Linq;
using System.Reflection;
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
class Program
{
static void Main(string[] args)
{
Person person = new Person() { FirstName = "John", LastName = "Doe" };
Type personType = typeof(Person);
PropertyInfo[] properties = personType.GetProperties(BindingFlags.Public | BindingFlags.Instance); // 获取公共实例属性
foreach (PropertyInfo property in properties)
{
Console.WriteLine($"Property Name: {property.Name}, Value: {property.GetValue(person)}");
}
}
}
```
在这个例子中,我们首先创建了一个Person对象,然后通过`typeof(Person)`获取到Person类型。接着,`GetProperties`方法接收`BindingFlags`枚举作为参数,其中`Public | BindingFlags.Instance`表示只检索公共和实例属性。
运行上述代码,你会看到`FirstName`和`LastName`及其对应的值。
阅读全文