我有一个 dll,其中包括:
public abstract class Module
{
internal int ID;
public abstract void ModuleStart();
}
public void function1() {}
public void function2() {}
//etc...
然后我有另一个引用上述 dll 的 dll 并具有:
class MyModule : Module
{
public override void ModuleStart()
{
function1();
}
}
我想做的是让 function1 知道调用模块 ID 的值,而不是传入它。有没有办法做到这一点?基本上我要做的是,加载主模块 DLL,运行加载第二个 dll 的方法,使用反射确保它具有模块的子级,为其分配一个 ID 并运行 ModuleStart。然后 MyModule 可以做它需要做的事情,从第一个 dll 调用函数以访问内部受保护的内存,但是当函数被调用时,它们需要知道调用它们的模块的 ID。这可能吗?MyModule 不知道其 ID,也无法更改它。