Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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));
        }