public static ResourceType FindResourceType(this ResourceType resourceType, Type clrType) { ResourceType resourceType1; if (!resourceType.DoesClrTypeMatch(clrType)) { ResourceCustomState customState = resourceType.CustomState as ResourceCustomState; if (customState != null) { HashSet <ResourceType> .Enumerator enumerator = customState.DerivedTypes.GetEnumerator(); try { while (enumerator.MoveNext()) { ResourceType current = enumerator.Current; if (!current.DoesClrTypeMatch(clrType)) { continue; } resourceType1 = current; return(resourceType1); } return(resourceType); } finally { enumerator.Dispose(); } return(resourceType1); } else { return(resourceType); } } else { return(resourceType); } }