void ChangeToObservedBuilderSet()
 {
     if (_internalSet.Count > 1)
     {
         _internalSet = new ObservedMultipleObjectBuilderSet((MultipleObjectBuilderSet)_internalSet);
     }
     else
     {
         _internalSet = new ObservedSingleObjectBuilderSet((SingleObjectBuilderSet)_internalSet);
     }
 }
 public void Add(IObjectRegistration registration)
 {
     if (_internalSet == null)
     {
         _internalSet = new SingleObjectBuilderSet();
     }
     else if (_internalSet.Count == 1)
     {
         _internalSet = _internalSet.IsObserved
             ? new ObservedMultipleObjectBuilderSet((ObservedSingleObjectBuilderSet)_internalSet)
             : new MultipleObjectBuilderSet((SingleObjectBuilderSet)_internalSet);
     }
     _internalSet.Add(registration);
 }