2014-08-29 46 views
0

我需要使用一些外部dll中的方法,我已經做了類似的事情,但是這次外部dll是一個接口。如何在c中使用外部dll的接口#

我這樣做:

Assembly Assembly = Assembly.LoadFrom("fullpathofdll"); 
Type Type = Assembly.GetType("mytype"); 
dynamic Instance = Activator.CreateInstance(Type); 

但我得到這個錯誤:無法創建一個接口的實例

我明白這是不可能的instaciate的界面,但我不知道該怎麼做這個工作。

有人可以幫忙嗎?

+0

創建一個實現該接口的具體類的實例嗎? – 2014-08-29 14:56:57

+1

Inteface只是一個代碼合同。您需要創建實現接口的類的實例。你當然可以在dll中找到許多實現該接口的類。所有這些類可能有不同的實現,並且您會得到不同的相同方法的結果。 – Reniuz 2014-08-29 14:59:37

+0

如果您沒有具體的類,那麼您沒有實現,該DLL是否包含實現該接口的任何類型?如果沒有,那麼你只是有一個合同,沒有執行,所以你會自己寫一個。 – 2014-08-29 15:00:13

回答

0

一個接口應該是一個「契約」,供您實現,而不是實例化。您自己的接口實現可以通過反射的方式實例化,如上所述。

+0

對不起Keni,但我不明白。你能給我一個如何做到這一點的樣本? – 2014-08-29 18:03:56

+0

顯而易見:http://msdn.microsoft.com/en-us/library/87d83y5b(v=vs.100).aspx – keni 2014-08-30 13:31:29