Ensure default mock names are (more) unique
Ensure default mock names are (more) unique

Default mock object names are built from the type name and a hex
number. Instead of building that number from the first 4 digits of a
GUID, create 8 unique (but non-random) hex digits in the simplest
possible way: using a thread-safe ever-increasing counter.

It is still possible that the same number is used more than once, but
this is now far less likely to happen in real-world scenarios: it
would require the generation of more than 2^32 mock objects.

Moq/moq4,ocoanet/moq4