I use a sum of hashcodes of component+action as a ID. They are not unique, but probability of   having different types with the same hashcodes is very rear...? You think it's still not safe enough?