相关疑难解决方法(0)

Mono.Cecil:从其他程序集调用基类的方法

如何按名称获取MethodReference到基类的方法?

我试过了

type.BaseType.Resolve().Methods;
Run Code Online (Sandbox Code Playgroud)

如果我将包含基类的dll添加到assemblyresolver,它将返回方法.但是,如果我使用添加呼叫

MSILWorker.Create(OpCodes.Call, baseMethod);
Run Code Online (Sandbox Code Playgroud)

(通过从解析的TypeDefinition中预处理方法找到baseMethod),生成的IL不可读,甚至Reflector冻结并退出.

现在有些IL:
如果在类型上调用私有方法:

 call instance void SomeNamespace.MyClass::RaisePropertyChanged(string)
Run Code Online (Sandbox Code Playgroud)

如果在基类型上调用protected方法:

call instance void [OtherAssembly]BaseNamespace.BaseClass::RaisePropertyChanged(string)
Run Code Online (Sandbox Code Playgroud)

那么,我如何使用Mono.Cecil生成后者呢?

inheritance il cil assemblies mono.cecil

3
推荐指数
1
解决办法
1752
查看次数

标签 统计

assemblies ×1

cil ×1

il ×1

inheritance ×1

mono.cecil ×1