It would be nicer if TypeInfo would check stuff run time instead of compile time. But I worked around that.

I just finished my implementation with it.
I can now say to my game engine: I have an interface ITestInterface.
My engine says: Ok, that's good, let me see if I can construct any registered stuff with that.
If yes, I get back an instance of a new object that implements that interface.

This goes over DLL boundaries.