private static bool IsMatch(Type candidate, Type value) { if(Helpers.IsOpenGenericType(candidate) && value.IsGenericType) { return GenericIsMatch(candidate, value.GetGenericTypeDefinition()); } return candidate.IsAssignableFrom(value); }