There is an (old) article on CodeProject. I've used it in a production environment previously and it worked great. We had some minor issues (performance amongst others), which I addressed. I put all this in a library you can find here.
Disclaimer: I am the maintainer of this project, so this might be conceived as a shameless plug. The library is free (as in beer and as in speech) however.
It includes the SI units, but also allows creating new units and conversions.
So you can for example create a unit "XP" (experience points). You can then register a conversion to "m" (meter, makes no sense, but you can do it). You can also create an amount like 3 XP/min (3 experience points per minute). I believe it offers decent defaults, while allowing flexibility.