using System; using System.Reflection; using System.Reflection.Metadata; var assembly = Assembly.LoadFrom("MyAssembly.dll"); var metadataReader = new MetadataReader(assembly.GetModules()[0].MetadataToken); foreach (var exportedTypeHandle in metadataReader.ExportedTypes) { var exportedType = metadataReader.GetTypeDefinition((ExportedTypeHandle) exportedTypeHandle); Console.WriteLine("Exported Type: {0}", exportedType.Name); }
using System; using System.Reflection; using System.Reflection.Metadata; var assembly = Assembly.LoadFrom("MyAssembly.dll"); var metadataReader = new MetadataReader(assembly.GetModules()[0].MetadataToken); var exportedTypeHandle = metadataReader.ExportedTypes.Single(et => metadataReader.GetString(et.Name) == "MyExportedType"); var exportedType = metadataReader.GetTypeDefinition((ExportedTypeHandle) exportedTypeHandle); Console.WriteLine("Exported Type: {0}", exportedType.Name);In this example, we load the MyAssembly.dll assembly and initialize a MetadataReader object with its metadata. We then retrieve the handle of a specific exported type using LINQ and the GetString method. Finally, we retrieve the type definition for this exported type and print out its name. Package Library: The MetadataReader class is part of the System.Reflection.Metadata namespace, which is part of the .NET Standard Library.