private static void EnsureClassMappingInitialized(Type closedImplementationType, ref IDictionary<Type, Type> genericDefinitionToClass)
{
if (genericDefinitionToClass == null)
{
genericDefinitionToClass = new Dictionary<Type, Type>();
var type = closedImplementationType;
while (type != typeof(object))
{
if (type.IsGenericType)
{
genericDefinitionToClass.Add(type.GetGenericTypeDefinition(), type);
}
type = type.BaseType;
}
}
}