I can resolve generic interfaces to generic classes like the common generic repository pattern.
IRepository<objectA> resolves to Repository<objectA>
IRepository<objectB> resolves to Repository<objectB>
But then for objectC I need a concrete Repository, namely ObjectCRepository that extends Repository<objectC>. If I register this won’t there be two different registrations for for IRepository<objectC> and everything fails?
There will be two registrations, but they don’t conflict. Unity is smart enough to prefer fully defined closed generics over open ones. For example this works fine: