using System.Reflection.Metadata; using System.Reflection.PortableExecutable; var peReader = new PEReader(File.OpenRead("myAssembly.dll")); var metadataReader = peReader.GetMetadataReader(); foreach (var typeHandle in metadataReader.TypeDefinitions) { var typeDefinition = metadataReader.GetTypeDefinition(typeHandle); var typeName = metadataReader.GetString(typeDefinition.Name); Console.WriteLine(typeName); }
using System.Reflection.Metadata; using System.Reflection.PortableExecutable; var peReader = new PEReader(File.OpenRead("myAssembly.dll")); var metadataReader = peReader.GetMetadataReader(); var methodHandle = metadataReader.MethodDefinitions.First(); var methodDefinition = metadataReader.GetMethodDefinition(methodHandle); var signature = metadataReader.GetBlobBytes(methodDefinition.Signature); Console.WriteLine(BitConverter.ToString(signature));This code retrieves the signature blob for the first method definition in the metadata and prints its byte representation to the console. Package library: `System.Reflection.Metadata`