public static void GetName(this CustomAttributeDef ca, out MetadataName name, out MetadataName @namespace) { var ctor = ca.Constructor; if (ctor.IsMemberRef) { var cls = ctor.MemberRef.Class; if (cls.IsTypeRef) { name = cls.TypeRef.TypeName; @namespace = cls.TypeRef.TypeNamespace; } else { name = cls.TypeDef.Name; @namespace = cls.TypeDef.Namespace; } } else { var ctorDef = ctor.MethodDef; TypeDef typeDef = ctorDef.FindDeclaringType(); name = typeDef.Name; @namespace = typeDef.Namespace; } }
public static bool IsExtensionAttribute(this CustomAttributeDef ca) { MetadataName name, ns; ca.GetName(out name, out ns); return(name.Equals(_ExtensionAttributeNameUtf8, 0, _ExtensionAttributeNameUtf8.Length) && ns.Equals(_ExtensionAttributeNamespaceUtf8, 0, _ExtensionAttributeNamespaceUtf8.Length)); }