System.Reflection 用途 功用
1.使用System.Reflection.MethodBase.GetCurrentMethod()、StackTrace用於偵錯
using System.Web;
using System.Reflection;
using System;
using System.Diagnostics;
namespace test
{
public class MyClass
{
public static string GetMethodInfo()
{
string showString = "";
//取得當前方法類別命名空間名稱
showString += System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace + "\n";
//取得當前類別名稱
showString += System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName + "\n";
//取得當前所使用的方法
showString += System.Reflection.MethodBase.GetCurrentMethod().Name + "\n";
StackTrace ss = new StackTrace(true);
//取得呼叫當前方法之上一層類別(GetFrame(1))的屬性
MethodBase mb = ss.GetFrame(1).GetMethod();
//取得呼叫當前方法之上一層類別(父方)的命名空間名稱
showString += mb.DeclaringType.Namespace + "\n";
//取得呼叫當前方法之上一層類別(父方)的法類名
showString += mb.DeclaringType.Name + "\n";
//取得呼叫當前方法之上一層類別(父方)的法全名
showString += mb.DeclaringType.FullName + "\n";
//取得呼叫當前方法之上一層類別(父方)的法名
showString += mb.Name + "\n";
return showString;
}
static void Main(string[] args)
{
Console.WriteLine(GetMethodInfo());
Console.ReadKey();
}
}
}
参考資料:
2.可利用assemblyVersion來讀取程式版號
参考資料:
結論:其實我還不清楚Reflection可以應用在多廣的地方,
但根據我的了解,Reflection主要應用在取得程式基底資訊並加以利用。
参考資料: