From 7cdbd3a6704439243cbf7baead14a129b25e2113 Mon Sep 17 00:00:00 2001 From: Jeroen Frijters Date: Tue, 7 Apr 2015 13:57:13 +0200 Subject: Added pinvokeimpl decoding for fields. --- Disassembler.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Disassembler.cs b/Disassembler.cs index b7e5c1a..c88704c 100644 --- a/Disassembler.cs +++ b/Disassembler.cs @@ -1476,20 +1476,19 @@ namespace Ildasm ; } - void WritePInvokeImpl(LineWriter lw, MethodBase method) + void WritePInvokeImpl(LineWriter lw, MemberInfo member) { lw.Write("pinvokeimpl("); - MethodInfo mi = method as MethodInfo; ImplMapFlags flags; string importName; string importScope; - if (mi != null && mi.__TryGetImplMap(out flags, out importName, out importScope)) + if (member.Module.__TryGetImplMap(member.MetadataToken, out flags, out importName, out importScope)) { if (importScope != null) { lw.Write("\"{0}\"", EscapePInvoke(importScope)); } - if (importName != null && importName != method.Name) + if (importName != null && importName != member.Name) { lw.Write(" as \"{0}\"", EscapePInvoke(importName)); } @@ -1954,6 +1953,10 @@ namespace Ildasm { lw.Write("notserialized "); } + if ((field.Attributes & FieldAttributes.PinvokeImpl) != 0) + { + WritePInvokeImpl(lw, field); + } if ((field.Attributes & FieldAttributes.HasFieldMarshal) != 0) { FieldMarshal marshal; -- cgit v1.2.3