- 浏览: 1078843 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- C++ (39)
- Java (74)
- Java界面开发学习笔记 (4)
- Java用户的c++之旅 (0)
- 自言自语 (12)
- DSP (1)
- MCU (0)
- CG (0)
- Jabber (0)
- Gloox (0)
- Linux (11)
- Windows (19)
- Networks (4)
- Jobs (0)
- PHP (1)
- JSP (2)
- 生活 (35)
- C (2)
- Qt4 (2)
- C# (50)
- WPF (5)
- ASP (2)
- FLEX (47)
- SQL (20)
- JavaScript (12)
- SharePoint (6)
- GWT (1)
- Dojo (9)
- HTML (11)
- Others (7)
- 如何安装配置系列 (7)
- UML (2)
- Android (3)
- alibaba (1)
最新评论
-
zxjlwt:
学习了http://surenpi.com
Firefox插件开发: Hello World! -
ylldzz:
楼主知道MVEL怎么调试么
MVEL简介及快速使用 -
blueman2012:
您好,可否提供源码下载,我把您的代码贴过来后,好多报错的,谢谢 ...
Log4J日志解析 -
svygh123:
你的游标都没有关闭呢!
MYSQL游标嵌套循环示例 -
dizh:
写的很好啊
MVEL简介及快速使用
首先描述一种情景,当给你一个VO类(这个类是映射到数据库的表上的),现在让你把这个VO对象(已包含有效数据)另存为成XML文件,一般的做法可能是:
rows[i].SetAttribute("Adddate", ret[i].Adddate);
如果属性只有五六七八个还可以忍受手写的方式,如果多至十几乃至几十的情况下,手写已经超出了人的忍耐程度。下面给出一种解决方法,利用C#的反射机制自动生成这些XML节点(属性等)。
给出一个示例的VO类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DataCenter.VO { public class HousehireVO { private int _id; private string _area; private string _source; private string _sphone; private string _address; private int _lc; private string _hx; private string _zhuangxiu; private double _hireprice; private int _bnuan; private string _ptss; private string _sysm; private string _bphone; private string _linkman; private string _wtsm; private DateTime _adddate; private int _userid; private int _deptid; private string _deptName; private int _invaliddate; private string _gjxl; private int _status; private int _isAgreement; private double _mj; #region Constructors public HousehireVO() { } #endregion #region Properties //一些Setter/Getter #endregion } }
上述这个类描述了一条房屋租赁信息。
不多废话,给出遍历属性的实现代码,如下:
List<VO.HousehireVO> ret ; //创建xml文档对象 XmlDocument doc = new XmlDocument(); //xml头 doc.AppendChild(doc.CreateXmlDeclaration("1.0", "utf-8", null)); //声明 //根元素 doc.AppendChild(doc.CreateElement("root")); //根节点 XmlElement[] rows = new XmlElement[ret.Count]; for (int i = 0; i < ret.Count; i++) { rows[i] = doc.CreateElement("Info"); HousehireVO vo = ret[i]; Type vType = vo.GetType(); PropertyInfo[] vPropertyInfos = vType.GetProperties(); foreach (PropertyInfo vPropertyInfo in vPropertyInfos) { rows[i].SetAttribute(vPropertyInfo.Name, vPropertyInfo.GetValue(ret[0], null); } }
发表评论
-
策略模式
2010-10-08 16:34 1175一、概念 策略模式(Strategy):它定义了一系 ... -
C#获取返回错误码
2010-05-21 17:59 1813[DllImport("TestWin32Dl ... -
VS.NET 开发Windows服务的步骤
2010-05-20 14:25 1607在很多应用中需要做windows服务来在一些后台操作,比如监视 ... -
c# 允许服务与桌面交互
2010-05-20 14:20 2708我们写一个服务,有时候要让服务启动某个应用程序,就要修 ... -
C#单例模式的三种写法
2010-05-19 15:58 48576第一种最简单,但没有考虑线程安全,在多线程时可能会出问题, ... -
C#中获取我的文档系统文件夹路径
2010-05-17 15:29 2275本技巧使用GetFolderPath方法来获取指向由指定枚 ... -
C#自定义事件的步骤介绍
2010-05-13 17:54 3300通常C#自定义事件有下面的几个步骤: ... -
C#的逆向工程-IL指令集
2010-04-30 10:28 1690一些 IL 语言解释: ... -
使用SqlHelper时“阅读器关闭时read的尝试无效”的解决方法
2010-04-20 14:54 1820原SqlHelper类中ExecuteReader方法体 ... -
C# 删除文件夹
2009-12-31 11:28 2569/// <summary> ... -
System.Windows.Forms.Timer和System.Timers.Timer的区别 [转]
2009-12-16 23:44 5210.NET Framework里面提供了三种Timer: ... -
关于var1=var2=something赋值语句的思考
2009-11-18 16:16 1245刚才在阅读《c#本质论》一书时,开头有提到var1=var2= ... -
C#使textbox滚动到最新一行
2009-11-16 12:33 2557方法1: textBox.Text += " ... -
Invoke()/BeginInvoke()区别
2009-11-15 17:43 7234查看MSDN如下: Control..::.Inv ... -
Invoke 和 BeginInvoke 的真正涵义
2009-11-15 17:37 1331BeginInvoke 方法真的是新开一个线程进行异步调用 ... -
编写安全的多线程C#程序
2009-11-15 01:24 1909与多线程相关的两个常见的需要解决的问题是:临界资源保护和线 ... -
线程,同步与锁——Lock你到底锁住了谁
2009-11-15 01:18 1596线程在多核时代的优势月来越明显,多线程编程的学习也提上议事日程 ... -
关于lock(this)的说明及用法
2009-11-15 01:16 5362一. 为什么要lock,lock了 ... -
远程dll注入 C#
2009-11-14 16:43 3140using System; using System. ... -
C# 3.0新特性之扩展方法
2009-11-09 17:02 988C#3.0扩展方法是给现有类型添加一个方法。现在类型既可是基本 ...
相关推荐
在本文中,我们将探讨如何使用反射遍历一个对象的所有属性及其对应的值。 首先,我们需要获取对象的`Type`对象。`Type`对象代表了一个类的元数据,它包含了关于类的所有信息,包括其属性、方法、构造函数等。以下是...
在给定的标题"Java Bean 遍历和使用注解给Bean的属性添加属性值"中,我们可以深入探讨两个主要主题:Java Bean的遍历和注解的应用。 1. **Java Bean遍历**: - **反射机制**:遍历Java Bean通常涉及使用Java的反射...
这个例子主要展示了如何使用Java反射机制进行属性操作,但需要注意的是,反射应该谨慎使用,因为它可能会破坏封装性,增加代码的复杂性和运行时的性能开销。在实际开发中,除非必要,否则尽量避免过度依赖反射。此外...
在遍历对象属性之前,首先需要获取对象的类型信息。这通常通过调用`GetType()`方法来完成。如示例代码所示: ```csharp Type t = tc.GetType(); ``` 这里的`tc`是任意一个对象实例,`GetType()`返回该对象的运行时...
在 Java 中,我们可以使用反射机制来打印一个对象的所有属性值。下面是一个简单的示例代码: ```java import java.lang.reflect.Field; public class ObjectPrinter { public static void printObject(Object obj...
4.如何使用反射机制设置对象的属性值 5.反射机制的优缺点和使用场景 6.如何处理反射机制中的异常 这篇文章展示了Java反射机制的基本概念和使用方法,并提供了一个实用的例子来展示如何使用反射机制来获取对象的属性...
在JavaScript中,除了遍历对象属性,还可以通过反射机制来动态地获取和操作对象的信息。反射是指程序在运行时检查自身的结构和行为。在JavaScript中,`for...in`循环可以用于实现反射机制,允许我们在运行时检查对象...
下面我们将通过分析给定的文件名来理解如何在Qt中使用QMetaObject实现反射机制。 首先,我们看到几个`.cpp`和`.h`文件,这些是C++的源代码和头文件。例如,`Person.cpp`和`Person.h`可能定义了一个名为`Person`的类...
通过上述示例,我们可以看到如何利用Java反射机制获取一个类中的所有属性及其对应的值。这种方法非常适用于动态配置或解析对象的场景。需要注意的是,虽然反射提供了强大的功能,但它也存在一定的性能开销,因此在...
通过上述代码片段的学习,我们不仅掌握了如何在C#中使用反射来遍历结构体的属性,还深入了解了反射的工作原理及其应用场景。反射作为C#的一个高级特性,在实现灵活和可扩展的软件系统方面发挥着重要作用。希望本文能...
在Java编程语言中,反射机制是一种强大的工具,它允许程序在运行时检查和操作对象的内部属性和行为。反射机制的核心在于`Class`类,它提供了对类信息的访问,包括类的结构、属性、方法以及构造器等。通过反射,...
在JavaScript中,遍历对象属性是一项基础且常用的操作,它涉及到对对象的深入理解和动态操作。本篇文章将详细讲解如何遍历JavaScript对象的属性,并通过示例代码展示具体的应用。 首先,JavaScript提供了多种遍历...
1. `setPropertyValue`: 这个方法接受对象、属性名和属性值,然后使用反射找到对应的setter方法并调用,从而设置对象的属性值。 2. `getPropertyValue`: 类似地,这个方法会找到getter方法,返回指定属性的值。 3. `...
这篇博客文章可能讨论了如何利用反射机制来获取类的私有属性并读取其对应的属性值。以下是关于这个主题的详细解释。 首先,我们需要理解什么是反射。Java反射API提供了一系列类和接口,如`Class`、`Field`、`Method...
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于...理解并熟练掌握反射机制,能够帮助开发者解决复杂问题,提升程序的灵活性。
- **性能考量**:在性能敏感的代码段应避免使用反射,或将其封装在缓存机制中,减少重复的类型信息查询。 - **安全限制**:如果在沙箱环境或受限环境中运行代码,可能无法访问某些反射功能。 通过以上讲解,我们...
在Java编程语言中,反射(Reflection)是一种强大的...不过,了解并熟练掌握反射机制对于解决特定问题或实现特定功能(如框架设计)是非常有价值的。通过上述步骤,你可以有效地利用反射获取和操作类的父类属性和方法。
标题中的“通过构造及反射实现类属性赋值”涉及到的技术是Java的构造函数和反射机制。这两种方法在特定场景下能帮助我们更灵活、更深入地处理对象属性的复制。 首先,构造函数是创建新对象时调用的特殊方法,它可以...
在.NET框架中,数据库操作是常见的任务之一,而DBFrm项目则提供了一种利用反射机制和对象序列化来实现数据库内容的备份和还原的方法。本文将深入探讨这两个关键概念,以及它们如何协同工作以实现数据管理的目标。 ...