首頁 >後端開發 >C++ >我可以只從 DLL 和類別名稱動態實例化 .NET 類別嗎?

我可以只從 DLL 和類別名稱動態實例化 .NET 類別嗎?

Barbara Streisand
Barbara Streisand原創
2025-01-19 09:02:08502瀏覽

Can I Dynamically Instantiate a .NET Class from Just a DLL and Class Name?

動態載入與實例化.NET組件

只擁有DLL和類別名,是否可以在不明確引用項目中組件的情況下動態建立物件?該類別符合介面規範,允許您在實例化後將其強制轉換為介面。

程序集與型別資訊

  • 程式集名稱:library.dll
  • 型別名稱:Company.Project.Classname

可以。使用Assembly.LoadFrom,您可以將程序集載入到記憶體中。然後,您可以使用Activator.CreateInstance建立所需類型的實例。使用反射,您必須先搜尋該類型:

<code class="language-csharp">Assembly assembly = Assembly.LoadFrom("MyNice.dll");

Type type = assembly.GetType("MyType");

object instanceOfMyType = Activator.CreateInstance(type);</code>

改良方案

擁有組件檔案名稱和類型名稱後,您可以使用Activator.CreateInstance(assemblyName, typeName)來指示.NET類型解析機制確定該類型。為了處理此嘗試失敗的情況,您可以將其包含在try/catch區塊中,然後搜尋可能儲存補充程序集的目錄。此時,您將使用前面提到的方法。

以上是我可以只從 DLL 和類別名稱動態實例化 .NET 類別嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn