2014-08-29 47 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