public static void DumpModule(MetadataTables tables) { ModuleDef md = tables.ModuleDef; _output.WriteLine("Module:"); _output.WriteLine(" {0} {1}", md.Name, md.Mvid); AssemblyDef adef = tables.AssemblyDef; if (!adef.Record.IsNull) { _output.WriteLine("AssemblyDef:"); _output.WriteLine(" {0} {1} {2} {3} {4} {5}", adef.Name, adef.Version, adef.Culture, adef.NameFlags, adef.HashAlgorithm, BitConverter.ToString(adef.GetPublicKey()) ); } if (tables.AssemblyRefs.GetCount() > 0) { _output.WriteLine("AssemblyRefs:"); foreach (AssemblyRef a in tables.AssemblyRefs) { _output.WriteLine(" {0} {1} {2} {3} {4} {5}", a.Name, a.Version, a.Culture, a.NameFlags, BitConverter.ToString(a.GetHashValue()), BitConverter.ToString(a.GetPublicKeyOrToken()) ); } } if (tables.Files.GetCount() > 0) { _output.WriteLine("Files:"); foreach (FileDef fd in tables.Files) { _output.WriteLine(" {0} {1} {2}", fd.Name, fd.Attributes, BitConverter.ToString(fd.GetHashValue()) ); } } if (tables.ManifestResources.GetCount() > 0) { _output.WriteLine("ManifestResources:"); foreach (ManifestResourceDef resource in tables.ManifestResources) { _output.WriteLine(" {0} {1} {2} 0x{3:X8}", resource.Name, resource.Attributes, ImplementationToString(resource.Implementation), resource.Offset ); } } _output.WriteLine(new String('-', 50)); }