六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 37|回复: 0

C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)

[复制链接]

升级  32.45%

533

主题

533

主题

533

主题

探花

Rank: 6Rank: 6

积分
1649
 楼主| 发表于 2013-1-26 12:39:41 | 显示全部楼层 |阅读模式
反射以及Attribute在ORM中的应用

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />一、反射
什么是反射?
简单点吧,反射就是在运行时动态获取对象信息的方法,比如运行时知道对象有哪些属性,方法,委托等等等等。
反射有什么用呢?
反射不但让你在运行是获取对象的信息,还提供运行时动态调用对象方法以及动态设置、获取属性等的能力。
反射在ORM中有什么用呢?
我这里所讨论的ORM实现是通过自定义Attribute的方式进行映射规则的描述的。但是我们并不知道具体哪个对象需要对应哪个表,并且这些对象是独立于我们的ORM框架的,所以我们只能通过自定义Attribute来定义映射规则,然后通过反射来动态获取这些映射规则。
反射的实现:
下面我们就以简单的获取对象的属性值的方式来做讨论,假设我们有类Person,其中有3个属性Name、Age,Sex。我们通过反射的方法来动态获取Person的对象的这三个属性的值。


<div class="highlighter">

  • publicclassPerson
  • {
  • privatestring_Name;
  • privateint_Age;
  • privatestring_Sex;

  • publicstringName
  • {
  • get{returnthis._Name;}
  • set{this._Name=value;}
  • }

  • publicintAge
  • {
  • get{returnthis._Age;}
  • set{this._Age=value;}
  • }

  • publicstringSex
  • {
  • get{returnthis._Sex;}
  • set{this._Sex=value;}
  • }
  • }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表