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; }
}
分享到:
相关推荐
在C#编程中,对象属性的遍历是一个常见的操作,尤其是在需要动态处理对象或进行反射操作时。根据给定的文件信息,我们将深入探讨如何在C#中遍历对象的属性,以及理解其中的关键概念。 ### 核心知识点:C#中的属性...
对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): 代码如下: Type t = tc.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach ...
`typeof`是一个C#运算符,用于获取类型的信息,返回的是`System.Type`对象,这个对象包含了有关该类型的详细信息。 ```csharp Type type = typeof(Color); ``` #### 获取结构体的属性 接下来,我们使用`...
在这个例子中,我们定义了一个名为`Class1`的实体类,它包含两个属性:`IntTemp`和`StrTemp`。 ```csharp public class Class1 { private int intTemp; public int IntTemp { get { return intTemp; } set { ...
在深入探讨如何通过反射获取实体类的字段和值之前,我们先来理解一下反射是什么以及它在.NET框架中的作用。反射是一种强大的编程技术,允许运行时动态地获取类型的信息并操作对象。它提供了对程序集、模块、类型、...
综上所述,"C#利用反射类的技术实现sql动态增删改查.rar"是一个关于如何在C#中利用反射进行数据库操作的实例,通过动态生成SQL语句,实现了对SQL数据库的灵活性和适应性。这种技术对于处理复杂的业务逻辑和多样化的...
本实例是基于C#和Visual Studio 2008开发的一个小程序,展示了如何使用反射来读取并显示DLL文件中的信息。通过选择一个DLL文件,该程序会以树形结构呈现反射的结果,便于开发者了解库内部的结构和功能。 反射的原理...
这个小程序名为“遍历画笔”,它是在C#环境下创建的一个Windows窗口应用,主要功能是动态改变窗口的背景颜色,通过遍历`System.Windows.Media.Brushes`类中的所有静态公共属性来实现。以下是该程序的主要知识点: 1...
在本实例中,我们定义了一个名为`IReflectionable`的接口,它可能包含一个或多个方法,如`Execute()`。这个接口定义了我们需要在动态加载的DLL中寻找的行为。例如: ```csharp public interface IReflectionable { ...
在反序列化时,我们需要从XML字符串创建一个新的对象实例,并设置其属性值。同样,这是一个递归过程,因为我们需要为每个属性创建对应的值,如果属性是类,则需要再次调用 `Deserialize` 方法。 总的来说,这个任务...
然后,它创建一个与输入字符串对应的实体类实例,并遍历字典,将属性名与字典中的值对应,设置到新实例的相应属性上。 这里还提到一个辅助方法`GetObject`,用于将字符串转换为与属性类型匹配的对象,以便设置属性...
在这个"C#实例ORM"中,我们将探讨如何在C#环境下,特别是在Visual Studio 2010或更高版本中,利用属性反射来实现数据表字段与类属性之间的映射。 首先,理解属性反射是关键。在C#中,反射是一种强大的工具,它允许...
本文将深入探讨如何利用反射来判断一个对象是否包含特定的属性,以及相关的C#反射概念和技术。 首先,让我们看下标题和描述中提到的实现方法。以下是一个使用C#编写的静态方法,它接受一个对象实例和一个属性名称,...
C#反射(Reflection)是.NET框架提供的一种强大的元数据访问机制,它允许程序在运行时检查自身的行为和属性。在C#中,反射允许我们动态地创建对象、获取类型信息、调用方法、访问字段和属性,以及遍历类型的继承层次...
在提供的代码示例中,定义了一个名为`FieldRuleInfo`的类,该类包含了许多字符串类型的公共字段。这些字段的名称与数据库查询结果中的列名相对应。目的是通过反射,根据查询结果动态地为类的字段赋值。 以下是使用...
6. **枚举类型和枚举值**:反射也可以用来处理枚举,我们可以获取枚举的类型,遍历其所有值,甚至根据名称获取对应的枚举值: ```csharp Type enumType = typeof(MyEnum); foreach (var name in Enum.GetNames(enum...
在"ReflectionInterfaceApplication"项目中,我们可以预期看到一个主程序,它使用反射来调用实现了"IReflectionable"接口的类的方法。"ReflectionInterface"可能是一个包含接口定义的类库,而"IReflectionable"就是...
总之,C#反射是一个强大且灵活的工具,能够帮助我们在运行时发现和利用类型信息。在插件系统中,它使得动态加载和管理组件成为可能,同时带来了高度的可扩展性和定制性。然而,合理使用并注意其潜在的性能影响,是...