首页 > 其他 > 详细

Assembly.LoadFrom() 方法加载程序集,无法转换类型

时间:2016-01-04 11:39:05      阅读:213      评论:0      收藏:0      [点我收藏+]

 有些情况在开发一个C#框架的时候,要用到反射加载另外程序集,这是必然考虑的事情。这样做的好处就是多个工程同时作业的时候,可以互不干扰,替换DLL文件即可。

 Assembly.Load();这个方法只能加载项目引用的程序集,如果其中一个DLL文件变更了,我们还得替换整个DLL,并没有真正实现分离。

 Assembly.LoadFrom();可以加载程序外的DLL文件,并且随时替换。

 前些日子,在用到Assembly.LoadFrom()加载DLL的时候,用相对路径找到了DLL文件,可是Invoke后的实例,总是转换不了类型:

1 object uocInstance = uocConstInfo.Invoke(new object[]{ });
2 
3 IEvent uocEvent = uocInstance as IEvent;

 尝试了很多方法,比较了Assembly.Load();和Assembly.LoadFrom();同时加载的后的实力,看似完全一样的结果。

 最后的解决方案是,把DLL文件放到Debug\bin\目录下,可以正常运行,发布也没有问题。

 

Assembly.LoadFrom() 方法加载程序集,无法转换类型

原文:http://www.cnblogs.com/hehongtao/p/5098169.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!