C# PropertyInfo的应用案例
时间: 2024-09-13 10:13:33 浏览: 39
C# 反射 实例
C# 中的 `PropertyInfo` 类是.NET Framework提供的一个用于操作属性的工具,它允许我们在运行时动态地获取、设置和检查对象的属性值。下面是一些 `PropertyInfo` 的应用案例:
1. **反射API**:当需要在不知道对象的具体类型的情况下访问其属性时,可以使用 `PropertyInfo`。例如,从JSON或其他数据源反序列化到对象时,可以遍历`PropertyInfo`列表并设置属性。
```csharp
var property = typeof(MyClass).GetProperty("MyProperty");
object value = //从JSON获取的值;
property.SetValue(obj, value);
```
2. **属性验证**:在验证对象的状态或满足某种条件时,可以检查某个属性是否具有特定值或是否存在。
```csharp
if (property.GetValue(obj) == expectedValue)
{
// 表示条件满足
}
```
3. **动态属性访问**:如果程序需要处理多种类型的对象,并且这些对象都共享某些公共属性,可以在运行时动态创建 `PropertyInfo` 对象。
```csharp
foreach (var pi in obj.GetType().GetProperties())
{
if (pi.Name == "CommonAttribute")
{
Console.WriteLine(pi.GetValue(obj));
}
}
```
阅读全文