動態載入與實例化.NET組件
只擁有DLL和類別名,是否可以在不明確引用項目中組件的情況下動態建立物件?該類別符合介面規範,允許您在實例化後將其強制轉換為介面。
程序集與型別資訊
解
可以。使用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中文網其他相關文章!