c# – 动态加载DLL

c# – 动态加载DLL,第1张

概述我试图在运行时简单地加载一个用C#编写的dll,并在该dll中创建一个类的实例. Assembly a = Assembly.LoadFrom(@"C:\Development\DaDll.dll");Type type = a.GetType("FileReleaseHandler", true);TestInterface.INeeedHelp handler = Activator.Cr 我试图在运行时简单地加载一个用C#编写的dll,并在该dll中创建一个类的实例.
Assembly a = Assembly.LoadFrom(@"C:\Development\DaDll.dll");Type type = a.GetType("fileReleaseHandler",true);TestInterface.INeeedHelp handler = Activator.CreateInstance(type) as    TestInterface.INeeedHelp;

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

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

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

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

总结

以上是内存溢出为你收集整理的c# – 动态加载DLL全部内容,希望文章能够帮你解决c# – 动态加载DLL所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1262738.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存