`

C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值

    博客分类:
  • C#
阅读更多

C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值

总结:
对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射):

Type t = tc.GetType();//获得该类的Type

 

//再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了
foreach (PropertyInfo pi in t.GetProperties
{
    object value1 = pi.GetValue(tc, null));//用pi.GetValue获得值
    string name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作
    //获得属性的类型,进行判断然后进行以后的操作,例如判断获得的属性是整数
   if(value1.GetType() == typeof(int))
   {
       //进行你想要的操作
   }
}
注意:

  必须要设置了get 和set方法的属性,反射才能获得该属性

public int Pid
  {
     get { return pid; }
     set { pid = value; }
  }

<script type="text/javascript"></script>

分享到:
评论
1 楼 weituotian 2016-05-24  
这篇文章真的很好阿

相关推荐

    c#遍历obj属性用例

    在C#编程中,对象属性的遍历是一个常见的操作,尤其是在需要动态处理对象或进行反射操作时。根据给定的文件信息,我们将深入探讨如何在C#中遍历对象的属性,以及理解其中的关键概念。 ### 核心知识点:C#中的属性...

    C#中使用反射遍历一个对象属性及值的小技巧

    对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): 代码如下: Type t = tc.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach ...

    C#遍历结构体

    `typeof`是一个C#运算符,用于获取类型的信息,返回的是`System.Type`对象,这个对象包含了有关该类型的详细信息。 ```csharp Type type = typeof(Color); ``` #### 获取结构体的属性 接下来,我们使用`...

    C#数据实体类中如何给属性赋值

    在这个例子中,我们定义了一个名为`Class1`的实体类,它包含两个属性:`IntTemp`和`StrTemp`。 ```csharp public class Class1 { private int intTemp; public int IntTemp { get { return intTemp; } set { ...

    通过反射获得实体类的字段和值

    在深入探讨如何通过反射获取实体类的字段和值之前,我们先来理解一下反射是什么以及它在.NET框架中的作用。反射是一种强大的编程技术,允许运行时动态地获取类型的信息并操作对象。它提供了对程序集、模块、类型、...

    C#利用反射类的技术实现sql动态增删改查.rar

    综上所述,"C#利用反射类的技术实现sql动态增删改查.rar"是一个关于如何在C#中利用反射进行数据库操作的实例,通过动态生成SQL语句,实现了对SQL数据库的灵活性和适应性。这种技术对于处理复杂的业务逻辑和多样化的...

    C#小程序示范实例 反射源码

    本实例是基于C#和Visual Studio 2008开发的一个小程序,展示了如何使用反射来读取并显示DLL文件中的信息。通过选择一个DLL文件,该程序会以树形结构呈现反射的结果,便于开发者了解库内部的结构和功能。 反射的原理...

    第02个小程序:遍历画笔

    这个小程序名为“遍历画笔”,它是在C#环境下创建的一个Windows窗口应用,主要功能是动态改变窗口的背景颜色,通过遍历`System.Windows.Media.Brushes`类中的所有静态公共属性来实现。以下是该程序的主要知识点: 1...

    C# 反射实例代码 接口方式动态加载dll方式Reflection

    在本实例中,我们定义了一个名为`IReflectionable`的接口,它可能包含一个或多个方法,如`Execute()`。这个接口定义了我们需要在动态加载的DLL中寻找的行为。例如: ```csharp public interface IReflectionable { ...

    c# 泛型保存类结构,支持递归

    在反序列化时,我们需要从XML字符串创建一个新的对象实例,并设置其属性值。同样,这是一个递归过程,因为我们需要为每个属性创建对应的值,如果属性是类,则需要再次调用 `Deserialize` 方法。 总的来说,这个任务...

    C#实现实体类与字符串互相转换的方法

    然后,它创建一个与输入字符串对应的实体类实例,并遍历字典,将属性名与字典中的值对应,设置到新实例的相应属性上。 这里还提到一个辅助方法`GetObject`,用于将字符串转换为与属性类型匹配的对象,以便设置属性...

    C# 实例 ORM

    在这个"C#实例ORM"中,我们将探讨如何在C#环境下,特别是在Visual Studio 2010或更高版本中,利用属性反射来实现数据表字段与类属性之间的映射。 首先,理解属性反射是关键。在C#中,反射是一种强大的工具,它允许...

    C#利用反射来判断对象是否包含某个属性的实现方法

    本文将深入探讨如何利用反射来判断一个对象是否包含特定的属性,以及相关的C#反射概念和技术。 首先,让我们看下标题和描述中提到的实现方法。以下是一个使用C#编写的静态方法,它接受一个对象实例和一个属性名称,...

    c# 反射(Reflection)例子

    C#反射(Reflection)是.NET框架提供的一种强大的元数据访问机制,它允许程序在运行时检查自身的行为和属性。在C#中,反射允许我们动态地创建对象、获取类型信息、调用方法、访问字段和属性,以及遍历类型的继承层次...

    C#实现利用反射简化给类字段赋值的方法

    在提供的代码示例中,定义了一个名为`FieldRuleInfo`的类,该类包含了许多字符串类型的公共字段。这些字段的名称与数据库查询结果中的列名相对应。目的是通过反射,根据查询结果动态地为类的字段赋值。 以下是使用...

    C#实现反射的代码 经典

    6. **枚举类型和枚举值**:反射也可以用来处理枚举,我们可以获取枚举的类型,遍历其所有值,甚至根据名称获取对应的枚举值: ```csharp Type enumType = typeof(MyEnum); foreach (var name in Enum.GetNames(enum...

    c# 反射源码(接口)

    在"ReflectionInterfaceApplication"项目中,我们可以预期看到一个主程序,它使用反射来调用实现了"IReflectionable"接口的类的方法。"ReflectionInterface"可能是一个包含接口定义的类库,而"IReflectionable"就是...

    C#反射例子

    总之,C#反射是一个强大且灵活的工具,能够帮助我们在运行时发现和利用类型信息。在插件系统中,它使得动态加载和管理组件成为可能,同时带来了高度的可扩展性和定制性。然而,合理使用并注意其潜在的性能影响,是...

Global site tag (gtag.js) - Google Analytics