public static ICollection <ImplementedMember> GetImplementedProperties(this PropertyReference self) { V_0 = new List <ImplementedMember>(); V_1 = self.Resolve(); if (V_1 == null) { return(V_0); } if (V_1.get_GetMethod() != null) { V_2 = V_1.get_GetMethod().GetImplementedMethods().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_4 = PropertyDefinitionExtensions.GetMethodDeclaringProperty(V_3.get_Member() as MethodReference); if (V_4 == null) { continue; } V_0.Add(new ImplementedMember(V_3.get_DeclaringType(), V_4)); } } finally { if (V_2 != null) { V_2.Dispose(); } } return(V_0); } if (V_1.get_SetMethod() == null) { return(V_0); } V_2 = V_1.get_SetMethod().GetImplementedMethods().GetEnumerator(); try { while (V_2.MoveNext()) { V_5 = V_2.get_Current(); V_6 = PropertyDefinitionExtensions.GetMethodDeclaringProperty(V_5.get_Member() as MethodReference); if (V_6 == null) { continue; } V_0.Add(new ImplementedMember(V_5.get_DeclaringType(), V_6)); } } finally { if (V_2 != null) { V_2.Dispose(); } } return(V_0); }
public static ICollection <PropertyDefinition> GetOverridenAndImplementedProperties(this PropertyDefinition property) { V_0 = new List <PropertyDefinition>(); V_0.Add(property); if (property.get_GetMethod() == null) { if (property.get_SetMethod() != null) { V_1 = property.get_SetMethod().GetOverridenAndImplementedMethods().GetEnumerator(); try { while (V_1.MoveNext()) { V_3 = PropertyDefinitionExtensions.GetMethodDeclaringProperty(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 = property.get_GetMethod().GetOverridenAndImplementedMethods().GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = PropertyDefinitionExtensions.GetMethodDeclaringProperty(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); }