反射在抽象工厂模式中用得比较多,
如:petshop3.0与petshop4.0中的数据访问层中的相关类就是通过反射来动态创建的。
这里要提到的不是这种技术。
事例:假定我们用一个纯xml文件来存储网站的相关配置信息,免不了要对该xml文件进行读、写操作。
我们可以直接用XmlDocument或XmlReader来读取,当然,我们也可以专门写一个类。
类的每一个属性就是xml文件中的一个节点,假设有以下xml文件内容:
<?xml version="1.0" encoding="utf-8"?>
<Test>
<Id>10</Id>
<Name>aaa</Name>
</Test>
我们可以创建以下的一个类文件:
类的每一个字段对应xml中的每一个子节点,先看一下,我们如何读取xml文件,并获得子点节的内容:
运行结果:

已经正确取值。
可以写xml文件了
这里要用到PropertyInfo类需要引用到System.Reflection;命名空间
PropertyInfo : 发现属性 (Property) 的属性 (Attribute) 并提供对属性 (Property) 元数据的访问。
现在发现,petshop除了分层外没有很新的思想,不如另一些开源项目有学习性。