我在 SO 上看到了相当多的这个问题,我已经遵循了这个建议,但我似乎做错了什么。dll 似乎可以正常加载,但 CreateInstance 返回的对象为空。
我有这个dll:
namespace Backfill
{
public class Module : Kernel.Module
{
public override void ModuleStart()
{
//Stuff
}
}
}
在另一个具有不同命名空间的 DLL 中
namespace Kernel
{
public abstract class Module
{
public abstract void ModuleStart();
}
public static void KernelStart()
{
string load_dll = @"Path to DLL";
Assembly test_dll = Assembly.LoadFile(load_dll + ".dll");
Module test_mod = (Module)test_dll.CreateInstance("Kernel.Module");
test_mod.ModuleStart();
}
}
(Module)test_dll.CreateInstance("Kernel.Module");
但是,返回 null。知道为什么吗?