iT邦幫忙

1

動態載入.dll

HI 各位大大好

想請問有沒有什麼方法,可以動態的載入dll後可以使用該dll的方法

目前我有一個dll名叫test.dll
載入的寫法我是這樣寫

byte[] dllBytes = File.ReadAllBytes("test.dll");
Assembly assembly = Assembly.Load(dllBytes);
var instance = assembly.CreateInstance("test.testClass");

test這個dll的內容大致如下...

namespace test
{
    public class testClass
    {
        public testClass(){}
        public string doSomething()
        {
        ....
        }
    }
}

當我assembly.CreateInstance("test.testClass")時,我該怎麼使用doSomething這個方法呢?
https://ithelp.ithome.com.tw/upload/images/20200618/20120596inDkusWAl5.png

1 個回答

1
YoChen
iT邦研究生 4 級 ‧ 2020-06-18 18:28:44
最佳解答

將變數宣告由var改為dynamic即可

byte[] dllBytes = File.ReadAllBytes("test.dll");
Assembly assembly = Assembly.Load(dllBytes);
dynamic instance = assembly.CreateInstance("test.testClass");
instance.doSomething();
ice bear iT邦新手 4 級 ‧ 2020-06-18 18:49:15 檢舉

謝謝!!

我要發表回答

立即登入回答