public static ICollection <ImplementedMember> GetExplicitlyImplementedEvents(this EventDefinition self) { V_0 = new List <ImplementedMember>(); if (!self.IsExplicitImplementation()) { return(V_0); } if (self.get_AddMethod() != null) { V_1 = self.get_AddMethod().GetExplicitlyImplementedMethods().GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = V_1.get_Current(); V_3 = EventDefinitionExtensions.GetMethodDeclaringEvent(V_2.get_Member() as MethodReference); if (V_3 == null) { continue; } V_0.Add(new ImplementedMember(V_2.get_DeclaringType(), V_3)); } } finally { if (V_1 != null) { V_1.Dispose(); } } return(V_0); } if (self.get_RemoveMethod() == null) { return(V_0); } V_1 = self.get_RemoveMethod().GetExplicitlyImplementedMethods().GetEnumerator(); try { while (V_1.MoveNext()) { V_4 = V_1.get_Current(); V_5 = EventDefinitionExtensions.GetMethodDeclaringEvent(V_4.get_Member() as MethodReference); if (V_5 == null) { continue; } V_0.Add(new ImplementedMember(V_4.get_DeclaringType(), V_5)); } } finally { if (V_1 != null) { V_1.Dispose(); } } return(V_0); }
public static ICollection <EventDefinition> GetOverridenAndImplementedEvents(this EventDefinition self) { V_0 = new List <EventDefinition>(); V_0.Add(self); if (self.get_AddMethod() == null) { if (self.get_RemoveMethod() != null) { V_1 = self.get_RemoveMethod().GetOverridenAndImplementedMethods().GetEnumerator(); try { while (V_1.MoveNext()) { V_3 = EventDefinitionExtensions.GetMethodDeclaringEvent(V_1.get_Current()); if (V_3 == null) { continue; } V_0.Add(V_3); } } finally { if (V_1 != null) { V_1.Dispose(); } } } } else { V_1 = self.get_AddMethod().GetOverridenAndImplementedMethods().GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = EventDefinitionExtensions.GetMethodDeclaringEvent(V_1.get_Current()); if (V_2 == null) { continue; } V_0.Add(V_2); } } finally { if (V_1 != null) { V_1.Dispose(); } } } return(V_0); }
public static bool IsAbstract(this EventDefinition self) { if (self.get_AddMethod() != null && !self.get_AddMethod().get_IsAbstract()) { return(false); } if (self.get_RemoveMethod() == null) { return(true); } return(self.get_RemoveMethod().get_IsAbstract()); }
public static bool IsExplicitImplementation(this EventDefinition self) { if (self == null) { return(false); } if (self.get_AddMethod() != null && self.get_AddMethod().get_HasOverrides() && self.get_AddMethod().get_IsPrivate()) { return(true); } if (self.get_RemoveMethod() != null && self.get_RemoveMethod().get_HasOverrides() && self.get_RemoveMethod().get_IsPrivate()) { return(true); } return(false); }
private FieldDefinition GetField(EventDefinition eventDef) { if (eventDef.get_InvokeMethod() != null || eventDef.get_AddMethod() == null || eventDef.get_RemoveMethod() == null) { return(null); } V_0 = AutoImplementedEventMatcher.GetFieldWithName(eventDef.get_DeclaringType(), eventDef.get_EventType().get_FullName(), String.Concat(eventDef.get_Name(), "Event")); if (V_0 == null) { V_0 = AutoImplementedEventMatcher.GetFieldWithName(eventDef.get_DeclaringType(), eventDef.get_EventType().get_FullName(), eventDef.get_Name()); } if (V_0 == null) { return(null); } if (!this.IsThreadUnsafeEvent(V_0) && !this.IsThreadSafeEvent(V_0)) { return(null); } return(V_0); }