這篇文章介紹在專案中使用第三方 DLL 時,常用的動態參考與反射。
動態加入參考
- 可以使用
Assembly.LoadFrom("MyAssembly.dll")
載入特定的 DLL 檔。 Is64BitOperatingSystem
可以用來檢查作業環境是否為 64 bit 的作業系統。
參考 : Adding references dynamically in .NET Reflection c#- 反射
使用反射 (Reflection)
- 使用轉型,可以將
Assembly.LoadFrom()
載入的 Object 視為指定的型態。 - 僅接受沒有參數的建構子,參數要以額外函式傳入 class 內。
Assembly.GetTypes(string name)
使用的 name,是 namespace + class name (命名空間 + 類別名稱)。- 和 Abstract class 結合:不能直接建立 Abstract class 的實例,但是可以建構繼承類別的實例,再當成該 Abstract class 來使用。
參考: C# - 實作載入外部 DLL 外並使用 Method Can we create instance to abstract class?