Imagine I have a single class, with two instances:
MyClass a = new MyClass();
MyClass b = new MyClass();
MyClass has a method PrintUniqueInstan
You cannot inherit all your classes from a base class or interface and require implementation of a UniqueID property?
Another possibility is to wrap them in a class containing a generic object reference and the unique ID, then cataloging them as they are asked for in a lazy way. Cleaning up such a catalog of unique assignments could be awkward.