首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

理解 C# 反射機制(二):動態載入組件並呼叫方法實戰

     編輯:關於C語言

實戰步驟

  1. 建立類別庫 CustomControls.dll,包含 MathUtil 類別(Sum(double, double)、ApplicationName 屬性)。
  2. 主控台應用程式參考該 DLL(或動態載入)。
  3. 使用反射載入組件、取得型別、建立實例、呼叫方法。

程式碼

Assembly ass = Assembly.LoadFrom(@"F:\Path\CustomControls.dll");
Type t = ass.GetType("CustomControls.MathUtil");
object obj = Activator.CreateInstance(t);

Type[] paramTypes = { typeof(double), typeof(double) };
MethodInfo mi = t.GetMethod("Sum", paramTypes);
object[] args = { 5d, 4d };
object result = mi.Invoke(obj, args); // 回傳 9.0

Console.WriteLine("Result: " + result);

反射核心價值

  • 動態載入:外掛架構、延遲載入、熱插拔。
  • 型別發現:工具開發、序列化、ORM 映射。
  • 晚期繫結:編譯時期不需知道具體型別。

效能提醒

反射呼叫比直接呼叫慢,熱路徑建議緩存 MethodInfo/PropertyInfo 或使用 Delegate.CreateDelegate 轉為委派調用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved