/// <summary>
 /// Passivate all active parts.
 /// </summary>
 public void Passivate()
 {
     _state = ActivePartManagerState.Passivating;
     try
     {
         foreach (var part in _parts.Values)
         {
             part.Passivate();
         }
     }
     catch
     {
         _state = ActivePartManagerState.Invalid;
         throw;
     }
     _state = ActivePartManagerState.Passivated;
 }
 /// <summary>
 /// Activate all registered parts.
 /// </summary>
 public void Activate()
 {
     _state = ActivePartManagerState.Activating;
     try
     {
         foreach (var info in _regSvc.GetRegisteredElements())
         {
             IActivePart part;
             if (!_parts.TryGetValue(info.TypeName, out part))
             {
                 part = (IActivePart)Type.GetType(info.TypeName, true).CreateInstance(ServiceProvider);
                 _parts.Add(info.TypeName, part);
             }
             part.Activate();
         }
     }
     catch
     {
         _state = ActivePartManagerState.Invalid;
         throw;
     }
     _state = ActivePartManagerState.Activated;
 }