反射遍历

背景

机房收费系统里面有个基本数据设定的功能,我有个想法,就是如果我没有修改基本数据然后点击更新,希望系统能识别出来,并且告诉我。

基本思路

在外观层,用一个实体类对象保存从数据库查询出来的当前基本数据,然后U层的数据也组装成一个实体类保存U层的基本数据设定。然后比较这两个实体类的属性是不是完全相同。

关键代码

    Public Sub UpdateBasicData(enBasicData As Entity.BasicDataEntity)
        Dim i As Integer
        Dim oldValue As String
        Dim newValue As String
        Dim pi As System.Reflection.PropertyInfo
        Dim mpi() As System.Reflection.PropertyInfo

        mpi = GetType(Entity.BasicDataEntity).GetProperties()

        For i = 0 To mpi.Length - 3
            pi = mpi(i)

            oldValue = pi.GetValue(NewBasicDataEntity, Nothing).ToString()
            newValue = pi.GetValue(enBasicData, Nothing).ToString()

            If oldValue <> newValue Then
                Exit For
            End If
        Next

        If i = mpi.Length - 2 Then
            Throw New BasicDataNotEdit
        End If
        BasicDataBLL.EditBasicData(enBasicData)
    End Sub

参考资料

<img src="http://img.blog.csdn.net/20150517220906917?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3hsMDkyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
时间: 2024-08-09 22:54:14

反射遍历的相关文章

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

转自goldeneyezhang原文 C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值总结: 对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): Type t = tc.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach (PropertyInfo pi

C# 反射遍历对象

在项目中需要遍历各种对象,可以通过如下方法遍历. /// <summary> /// 返回对象字符串 /// </summary> /// <param name="obj"></param> /// <returns></returns> public string ReturnString(object obj) { StringBuilder str = new StringBuilder(); foreac

C#.net利用反射,遍历获得一个类的所有属性名,方法名,成员名

public void PrintInstanceInfor(object t)  {        //获取所有方法      System.Reflection.MethodInfo[] methods = t.GetMethods();      //获取所有成员      System.Reflection.MemberInfo[] members = t.GetMembers();           //获取所有属性      System.Reflection.PropertyIn

Type反射遍历类的属性

<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <appSettings> <!--实际生产中这里就是固定的

.NET基础拾遗(4)委托、事件、反射与特性

Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 一.委托基础 1.1 简述委托的基本原理 委托这个概念对C++程序员来说并不陌生,因为它和C++中的函数指针非常类似,很多码农也喜欢称委托为安全的函数指针.无论这一说法是否正确,委托的的确确实现了和函数指针类似的功能,那就是提供了程序回调指定方法的机制. 在委托内部,包含了一个指向某个方法的指针(这一点上委托实现机制和C++的函数指针一致),为何称其

java中数组的反射的探究

数组的反射有什么用呢?何时需要使用数组的反射呢?先来看下下面的代码: Integer[] nums = {1, 2, 3, 4}; Object[] objs = nums; //这里能自动的将Integer[]转成Object[] Object obj = nums; //Integer[]当然是一个Object int[] ids = {1, 2, 3, 4}; //Object[] objs2 = ids; //这里不能将int[]转换成Object[] Object obj2 = ids

c#用反射原理递归遍历复杂实体对象

之前在网上看到的都是遍历那种比较简单的实体对象,但是如果有实体嵌套,甚至是包含有List<XXInfo>这种属性的时候就没有办法处理了.通过递归遍历的方式可以完成对复杂实体对象的所有属性的遍历,可以取值和赋值. 下面是关键部分的代码,有什么不对的地方路过的大大一定要指点哈. using System.Reflection; public System.Text.StringBuilder strB = new System.Text.StringBuilder();     public vo

.Net 中的反射(序章) - Part.1

引言 反射是.Net提供给我们的一件强力武器,尽管大多数情况下我们不常用到反射,尽管我们可能也不需要精通它,但对反射的使用作以初步了解在日后的开发中或许会有所帮助. 反射是一个庞大的话题,牵扯到的知识点也很多,包括程序集.自定义特性.泛型等,想要完全掌握它非常不易.本文仅仅对反射做一个概要介绍,关于它更精深的内容,需要在实践中逐渐掌握.本文将分为下面几个部分介绍.Net中的反射: 序章,我将通过一个例子来引出反射,获得对反射的第一印象. 反射初步.Type类.反射普通类型.(修改中,近期发布..

.Net 中的反射(动态创建类型实例) - Part.4

动态创建对象 在前面节中,我们先了解了反射,然后利用反射查看了类型信息,并学习了如何创建自定义特性,并利用反射来遍历它.可以说,前面三节,我们学习的都是反射是什么,在接下来的章节中,我们将学习反射可以做什么.在进行更有趣的话题之前,我们先看下如何动态地创建一个对象. 我们新建一个Console控制台项目,叫做Reflection4(因为本文是Part4,你也可以起别的名字).然后,添加一个示范类,本文中将通过对这个示范类的操作来进行说明: public class Calculator { pr