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);
 }
Exemplo n.º 5
0
 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);
 }