void Format(DmdMethodBase method, DmdEventInfo @event, AccessorKind accessorKind) { if (DeclaringTypes) { FormatType(@event.DeclaringType); WritePeriod(); } WriteIdentifier(@event.Name, TypeFormatterUtils.GetColor(@event)); WriteToken(@event); WriteAccessor(accessorKind); WriteToken(method); WriteGenericArguments(method); WriteMethodParameterList(method, MethodParenOpen, MethodParenClose); WriteOffset(); }
public override DmdEventInfo[] ReadDeclaredEvents(DmdType declaringType, DmdType reflectedType) { var mapRid = reader.Metadata.GetEventMapRid(Rid); var ridList = reader.Metadata.GetEventRidList(mapRid); if (ridList.Count == 0) { return(Array.Empty <DmdEventInfo>()); } var events = new DmdEventInfo[ridList.Count]; for (int i = 0; i < events.Length; i++) { uint rid = ridList[i]; events[i] = reader.CreateEventDef(rid, declaringType, reflectedType); } return(events); }
DmdEventInfo[] ReadDeclaredEvents_COMThread(DmdType declaringType, DmdType reflectedType) { reader.Dispatcher.VerifyAccess(); var tokens = MDAPI.GetEventTokens(reader.MetaDataImport, (uint)MetadataToken); if (tokens.Length == 0) { return(Array.Empty <DmdEventInfo>()); } var events = new DmdEventInfo[tokens.Length]; for (int i = 0; i < events.Length; i++) { uint rid = tokens[i] & 0x00FFFFFF; events[i] = reader.CreateEventDef_COMThread(rid, declaringType, reflectedType); } return(events); }
public static bool IsMatch(DmdEventInfo @event, DmdBindingFlags bindingAttr) { var attr = DmdBindingFlags.Default; if (@event.AddMethod?.IsPublic == true || @event.RemoveMethod?.IsPublic == true || @event.RaiseMethod?.IsPublic == true) { attr |= DmdBindingFlags.Public; } else { attr |= DmdBindingFlags.NonPublic; } if (@event.AddMethod?.IsStatic == true || @event.RemoveMethod?.IsStatic == true || @event.RaiseMethod?.IsStatic == true) { attr |= DmdBindingFlags.Static; } else { attr |= DmdBindingFlags.Instance; } if ((object)@event.ReflectedType != @event.DeclaringType) { var method = @event.AddMethod; if ((object)method != null) { if (method.IsStatic) { if (method.IsPrivate) { return(false); } attr |= DmdBindingFlags.FlattenHierarchy; } else { if (!(method.IsVirtual || method.IsAbstract) && method.IsPrivate) { return(false); } } } } return((attr & bindingAttr) == attr); }
void Format(DmdMethodBase method, DmdEventInfo @event, AccessorKind accessorKind) { OutputWrite(Keyword_Event, DbgTextColor.Keyword); WriteSpace(); WriteAccessor(accessorKind); WriteToken(method); if (DeclaringTypes) { FormatType(@event.DeclaringType !); WritePeriod(); } WriteIdentifier(@event.Name, TypeFormatterUtils.GetColor(@event)); WriteToken(@event); WriteSpace(); OutputWrite(Keyword_As, DbgTextColor.Keyword); WriteSpace(); FormatType(@event.EventHandlerType); WriteOffset(); }
public static object GetColor(DmdEventInfo @event) => GetColor(@event.AddMethod ?? @event.RemoveMethod, BoxedTextColor.StaticEvent, BoxedTextColor.InstanceEvent);
public static DbgTextColor GetColor(DmdEventInfo @event) => GetColor(@event.AddMethod ?? @event.RemoveMethod, DbgTextColor.StaticEvent, DbgTextColor.InstanceEvent);