有没有办法通过反射在 c# 中找到模块初始化程序?我正在加载一个类型完全未知的程序集,但程序集中肯定会有一个模块初始化程序,但似乎没有任何方法可以使用反射找到它。为了使加载的程序集正常运行,它必须运行它的 MI。这是我目前正在尝试的:
var asm = Assembly.LoadFrom("GameBase.dll");
var module = asm.Modules.First(); //There's only one module.
//All MI cctor's must be private and static.
var cctor = module.GetMethods(BindingFlags.NonPublic | BindingFlags.Static);
请注意,我尝试使用这些标志查找模块中的所有方法,因为如果您使用 ildasm 检查 MI,名称似乎被混淆了。不幸的是,它不返回任何方法。
使用 Visual Studio 中的调试器,您可以看到它被声明为模块中的成员,但它被声明为模块中的方法,这可能是 GetMethods 没有返回的原因。
我怎样才能找到它?