1.建立實體
person如下類:
view code
public2.通過反射,讀取資訊class person
[displayattribute(description = "
年齡")]
public
int age
[displayattribute(description = "
返回方法
")]public
string getval()
public
int currentage;
}
type t = typeof(person);
//得到型別的所有資訊(包括方法,屬性,字段)
var fils = t.getmembers();
//得到所有的屬性
var p=t.getproperties();
//得到所有的字段
var fs= t.getfields();
//得到所有的方法
var ms = t.getmethods();
讀取所有的資訊中的attribute屬性
程式碼如下:
view code
foreach (memberinfo m in fils)3.根據type 建立實體,呼叫方法等類中的方法屬性
", t.name, m.name,d.gettype().name, d.description);
}else 類中的方法
", t.name, m.name);}}
}
// 建立person類
type t = typeof(person);
object obj = t.invokemember(null,
bindingflags.declaredonly |
bindingflags.public | bindingflags.nonpublic |
bindingflags.instance | bindingflags.createinstance, null, null, null);
//呼叫person類中的getval方法
var t2 = t.invokemember("getval",
bindingflags.declaredonly |
bindingflags.public | bindingflags.nonpublic |
bindingflags.instance | bindingflags.invokemethod, null, obj, null);
var atts= attribute.getcustomattributes(typeof(person).assembly);
關於反射的一些總結
關於反射的一些總結 1 load,loadfrom和loadfile load 只載入本地程式集中指定的類 通過命名空間等方式指定 loadfrom 通過外部相對或者絕對路徑載入指定的類庫或者exe等檔案,且重複載入相同程式集僅第一次有效 如果該程式集引用其它程式集,會被自動載入。loadfile ...
關於Java反射的一些事
乙個類中,private的屬性或方法,如何對這些屬性進行讀寫操作或方法進行呼叫呢,答案就是反射。最近在寫單元測試用例時,發現通過反射來測試一些private的方法或設定private的屬性非常實用。先看定義乙個類,其中有乙個private的屬性和乙個private的方法,並且建構函式也是乙個priv...
關於反射機制的一些示例
通過乙個物件獲得乙個完整的包名和類名 package com.ntqingniao.reflect public class client2 class demo2例項化class類物件 package com.ntqingniao.reflect public class client3 clas...