我有一个应用程序,我想要实例化一个完全在应用程序之外的类,可能是在以后由第三方编写的。所以这个类是不可知的,但是类中的接口是已知的。所以我想使用后期绑定。
在我的代码(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(),因为调用程序集不知道该类型。
答案 0 :(得分:0)
您需要CreateInstanceFrom方法。
var typeReference = Activator.CreateInstanceFrom(assemblyPath,
fullyQualifiedClassName);
但是,对我来说,MEF将是一个更好的解决方案,因为您可以在界面上绑定导入/导出。