如何使用Activator.CreateInstance实例化外部类?

时间:2012-12-20 14:19:49

标签: vb.net instantiation late-binding

我有一个应用程序,我想要实例化一个完全在应用程序之外的类,可能是在以后由第三方编写的。所以这个类是不可知的,但是类中的接口是已知的。所以我想使用后期绑定。

在我的代码(VB.NET)中,我有以下内容:

Dim a As Object
a = Activator.CreateInstance("MyNameSpace.CustomClass", "")
MsgBox(a.Name)

我在第二行遇到异常:Could not load file or assembly 'MyNameSpace.CustomClass' or one of its dependencies. The system cannot find the file specified.即使程序集与可执行文件位于同一文件夹中。我不能使用Type.GetType(),因为调用程序集不知道该类型。

1 个答案:

答案 0 :(得分:0)

您需要CreateInstanceFrom方法。

    var typeReference = Activator.CreateInstanceFrom(assemblyPath, 
                                                       fullyQualifiedClassName);

但是,对我来说,MEF将是一个更好的解决方案,因为您可以在界面上绑定导入/导出。