反射的一些操作
阿新 • • 發佈:2018-11-27
- 反射建立一個類
dynamic o=System.Reflection.Assembly.Load("程式集名稱(不含檔案字尾名)").CreateInstance("名稱空間.類名", false);
- 反射獲取所有欄位,包括父類的私有欄位
var fi = new List<FieldInfo>();
fi.AddRange(type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static));
while ((type = type.BaseType) != typeof(object))
{
fi.AddRange(type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static));
}
- 物件.GetType().Name
GetType()的定義如下
public Type GetType();
應用場景:根據子類的型別,來進行某些操作。在父類裡來一個if(this.GetType().Name==typeString),裡面就可以接相應操作了。
特別是子類特別多的時候,將子類的型別和一些資料從XML檔案裡讀出來,爽歪歪。