public void Remove(Type type)
 {
     if (_isLocked)
     {
         _pending[type] = new PendingChangeFamilyPair
         {
             Change = PendingChange.Remove
         };
     }
     else
     {
         _families.Remove(type);
     }
 }
 public void Add(Type nodeType, IFamily family)
 {
     if (_isLocked)
     {
         _pending[nodeType] = new PendingChangeFamilyPair
         {
             Change = PendingChange.Add,
             Family = family
         };
     }
     else
     {
         _families[nodeType] = family;
     }
 }