gpt4 book ai didi

c# - 动态加载 DLL

转载 作者:太空狗 更新时间:2023-10-29 21:20:17 24 4
gpt4 key购买 nike

我试图在运行时简单地加载一个用 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 在哪里定义?一个常见的问题是,如果您在多个程序集中有相同的接口(interface)。如果调用者和动态加载的程序集都引用同一个程序集中的同一个接口(interface),应该没问题。

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

关于c# - 动态加载 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2653884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com