using System.Reflection; using System.Reflection.Metadata; var assembly = Assembly.LoadFrom("MyAssembly.dll"); var metadataReader = new MetadataReader(assembly.ManifestModule.ModuleHandle.GetMetadataPointer()); var typeDefinition = metadataReader.GetTypeDefinition(metadataToken); var customAttribute = typeDefinition.GetCustomAttribute("MyNamespace.MyAttribute");
using System.Reflection; using System.Reflection.Metadata; var assembly = Assembly.LoadFrom("MyAssembly.dll"); var metadataReader = new MetadataReader(assembly.ManifestModule.ModuleHandle.GetMetadataPointer()); var methodDefinition = metadataReader.GetMethodDefinition(metadataToken); var customAttributes = methodDefinition.GetCustomAttributes(); foreach (var customAttribute in customAttributes) { var attributeType = metadataReader.GetTypeReference((TypeReferenceHandle)customAttribute.Constructor.Kind); Console.WriteLine(attributeType.Namespace + "." + attributeType.Name); }In this example, we retrieve a `MethodDefinition` object using its metadata token and obtain all custom attributes applied to the method. We then loop through each custom attribute and obtain its attribute type. Package/ Library: System.Reflection.Metadata