一、 反射
什麼是反射?
簡單點吧,反射就是在運行時動態獲 取對象信息的方法,比如運行時知道對象有哪些屬性,方法,委托等等等等。
反射有什麼用呢?
反射不但讓你在運行是獲取對象的信息,還提 供運行時動態調用對象方法以及動態設置、獲取屬性等的能力。
反射在 ORM中有什麼用呢?
我這裡所討論的ORM實現是通過自定義Attribute的方 式進行映射規則的描述的。但是我們並不知道具體哪個對象需要對應哪個表,並 且這些對象是獨立於我們的ORM框架的,所以我們只能通過自定義Attribute來定 義映射規則,然後通過反射來動態獲取這些映射規則。
反射的實現:
下面我們就以簡單的獲取對象的屬性值的方式來做討論,假設我們有類 Person,其中有3個屬性Name、Age,Sex。我們通過反射的方法來動態獲取 Person的對象的這三個屬性的值。
public class Person
{
private string _Name;
private int _Age;
private string _Sex;
public string Name
{
get { return this._Name; }
set { this._Name = value; }
}
public int Age
{
get { return this._Age; }
set { this._Age = value; }
}
public string Sex
{
get { return this._Sex; }
set { this._Sex = value; }
}
}