C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
反射以及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;}
[*]}
[*]}
页:
[1]