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); } } }