回 帖 发 新 帖 刷新版面

主题:动态使用dll,转换类型

我引用了一个dll,其中包含类Class1
我想这样做:
在代码中动态使用此dll,用反射的方法,创建一个Class1的实例,如:
Assembly a=Assembly.LoadFile(dllPath);    //从dll文件加载
ObjectHandle obj=a.CreateInstance(a.GetType("Class1").FullName);//创建Class1实例(成功)

然后,我想把他强制转换成Class1类型(我引用了Class1的dll)
Class1 c=(Class1)obj;//失败

请问,怎么解决失败的问题啊???

回复列表 (共1个回复)

沙发

既然已经引用了Class1的Dll,为什么还要动态创建呢?
我觉得动态创建就是在不静态引用Class1时使用的
定义一个接口或抽象类,引用接口或抽象类的Dll,然后将它转换为接口或抽象类的实例
另外CreateInstance返回的是一个Object对象,而不是ObjectHandle吧
我也不是很了解,以上只是我的感觉
继续关注

我来回复

您尚未登录,请登录后再回复。点此登录或注册