private static bool TryGetDelegatingType(Type interfaceType, ref Type type)
{
if (type != null
&& type.IsGenericType
&& (type.GetInterface(interfaceType.FullName) != null || type.GetGenericTypeDefinition().Equals(interfaceType)))
{
type = GetOrAddDelegatingType(type);
return true;
}
return false;
}