[英]How to provide method body for extern method with Mono.Cecil
我正在使用MS C#編譯器來編譯這樣的方法:
[Placeholder] public extern void Method();
編譯后的方法的RVA = 0
(相對虛擬地址)。
然后,使用Mono.Cecil 0.9.3,我要為其填充一個方法主體。
我這樣做是這樣的:
methodDefinition.Body = new MethodBody(methodDefinition);
// emit code...
但是,當嘗試保存程序集時,出現錯誤:
System.NullReferenceException: Object reference not set to an instance of an object.
at Mono.Cecil.Cil.CodeReader.IsInSection(Int32 rva)
at Mono.Cecil.Cil.CodeReader.MoveTo(Int32 rva)
at Mono.Cecil.Cil.CodeReader.PatchRawMethodBody(MethodDefinition method, CodeWriter writer, MethodSymbols& symbols)
at Mono.Cecil.Cil.CodeWriter.WriteUnresolvedMethodBody(MethodDefinition method)
at Mono.Cecil.Cil.CodeWriter.WriteMethodBody(MethodDefinition method)
我該如何運作?
我很say愧地說解決方案是將Mono.Cecil升級到0.9.5版。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.