Beispiel #1
0
            public static bool IsEventSourceImplementation(TypeDefinition type, LinkContext context)
            {
                if (!type.IsClass)
                {
                    return(false);
                }

                while (type.BaseType != null)
                {
                    var bt = context.ResolveTypeDefinition(type.BaseType);

                    if (bt == null)
                    {
                        return(false);
                    }

                    if (IsEventSourceType(bt))
                    {
                        return(true);
                    }

                    type = bt;
                }

                return(false);
            }
        public static IEnumerable <MethodReference> GetMethods(this TypeReference type, LinkContext context)
        {
            TypeDefinition typeDef = context.ResolveTypeDefinition(type);

            if (typeDef?.HasMethods != true)
            {
                yield break;
            }

            if (type is GenericInstanceType genericInstanceType)
            {
                foreach (var methodDef in typeDef.Methods)
                {
                    yield return(MakeMethodReferenceForGenericInstanceType(genericInstanceType, methodDef));
                }
            }
            else
            {
                foreach (var method in typeDef.Methods)
                {
                    yield return(method);
                }
            }
        }