首頁 > 後端開發 > C++ > 如何在C#中動態載入和使用DLL?

如何在C#中動態載入和使用DLL?

Mary-Kate Olsen
發布: 2025-01-14 09:37:44
原創
409 人瀏覽過

How Can I Dynamically Load and Use DLLs in C#?

C#動態載入DLL

在運行時載入和使用DLL是C#應用程式中的常見場景。這允許開發人員載入外部程式碼並擴展其程式的功能。

通常使用Assembly.LoadFile()在運行時載入DLL。但是,僅僅載入DLL並不能立即存取其方法。這就是反射和動態物件的概念發揮作用的地方。

反射

反射涉及在運行時檢查和操作類型。它能夠存取在編譯時未知的成員並呼叫方法。在提供的範例中,您可以使用反射從載入的DLL呼叫「Output」方法:

<code class="language-csharp">foreach (Type type in DLL.GetExportedTypes())
{
    var c = Activator.CreateInstance(type);
    type.InvokeMember("Output", BindingFlags.InvokeMethod, null, c, new object[] {@"Hello"});
}</code>
登入後複製

動態 (.NET 4.0以上版本)

動態物件允許在動態存取成員和呼叫方法方面具有更大的靈活性。使用dynamic關鍵字,您可以將載入類型的實例強制轉換為dynamic並直接存取其成員:

<code class="language-csharp">foreach (Type type in DLL.GetExportedTypes())
{
    dynamic c = Activator.CreateInstance(type);
    c.Output(@"Hello");
}</code>
登入後複製

在這兩種情況下,程式碼都成功地在運行時從載入的DLL呼叫了「Output」方法,讓您在C#應用程式中存取其功能。

以上是如何在C#中動態載入和使用DLL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板