public UnitsDisplayRepository Add(IDisplayUnits display, Regex tagMatcher, IEnumerable<Type> defaultFor) {
     if (display == null)
         throw new ArgumentNullException("display", "display is null.");
     if (tagMatcher == null)
         throw new ArgumentNullException("tagMatcher", "tags is null.");
     if (defaultFor == null)
         throw new ArgumentNullException("defaultFor", "defaultFor is null.");
     _displays.Add(tagMatcher, display);
     defaultFor.ToList().ForEach(d => {
         if (!typeof(UnitOfMeasure).IsAssignableFrom(d))
             throw new ArgumentException("Default types must all inherit from UnitOfMeasure but {0} was provided".Use(d.FullName));
         _defaults.Add(d, display);
     });
     return this;
 }
 public UnitDisplayRegistrationTagsAdder Instance(IDisplayUnits unitsDisplay) {
     return new UnitDisplayRegistrationTagsAdder(unitsDisplay);
 }
 public virtual string ToString(IDisplayUnits displayFormat, UnitPlurality plurality) {
     return displayFormat.GetUnitDisplayFor(new UnitAtPlularity(this, plurality));
 }
 public UnitDisplayRegistrationTagsAdder(IDisplayUnits unitsDisplay) {
     _unitsDisplay = unitsDisplay;
 }