我看到這個問題在SO上有相當的數量,並且我遵循了這個建議,但是我似乎做錯了什麼。該DLL似乎加載罰款,但對象CreateInstance返回爲空。如何從加載的DLL獲取對象
我有這個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,雖然。任何想法爲什麼?
第一個DLL中的具體類也在'Kernel'命名空間中嗎? – antonijn 2013-02-14 20:45:35
@Antonijn是的,我應該指定,第一個DLL是在一個完全不同的名稱空間,並引用'Kernel'庫來繼承'Module'類。 – cost 2013-02-14 20:59:21
那是什麼名字空間? – antonijn 2013-02-14 21:01:15