加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 动态加载DLL

发布时间:2020-12-15 04:18:33 所属栏目:百科 来源:网络整理
导读:我试图在运行时简单地加载一个用C#编写的dll,并在该dll中创建一个类的实例. Assembly a = Assembly.LoadFrom(@"C:DevelopmentDaDll.dll");Type type = a.GetType("FileReleaseHandler",true);TestInterface.INeeedHelp handler = Activator.CreateInstance
我试图在运行时简单地加载一个用C#编写的dll,并在该dll中创建一个类的实例.
Assembly a = Assembly.LoadFrom(@"C:DevelopmentDaDll.dll");
Type type = a.GetType("FileReleaseHandler",true);
TestInterface.INeeedHelp handler = Activator.CreateInstance(type) as    TestInterface.INeeedHelp;

不会抛出任何错误,如果我单步执行代码,我可以通过FileReleaseHandler类来执行构造函数,但处理程序的值始终为null.

我在这里错过了什么?或者甚至是否有更好的方法来解决这个问题?

解决方法

TestInterface.INeedHelp在哪里定义?一个常见的问题是如果你在多个程序集中有相同的接口.如果调用者和动态加载的程序集都引用同一程序集中的相同接口,那么它应该没问题.

一个微妙之处在于,如果程序集与调用程序集位于不同的目录中,它可能最终会加载同一程序集的不同副本,这可能会非常恼人:(

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读