This is a container knowing what entities are registered. It is able to register and resolve based on Type | ReflectionClass | ClassType.
This container is necessary since TypeScript interfaces have no identity (TypeObjectLiteral) and property types are not equal by identity.
This means there can be multiple ReflectionClass describing the same structure/type.
We need to do type comparison to get always the correct (registered) ReflectionClass.
This is a container knowing what entities are registered. It is able to register and resolve based on Type | ReflectionClass | ClassType.
This container is necessary since TypeScript interfaces have no identity (TypeObjectLiteral) and property types are not equal by identity. This means there can be multiple ReflectionClass describing the same structure/type. We need to do type comparison to get always the correct (registered) ReflectionClass.