/// <summary>
 /// <see cref="M:Microsoft.Practices.Unity.LifetimeManager.SetValue"/>
 /// </summary>
 /// <param name="newValue"><see cref="M:Microsoft.Practices.Unity.LifetimeManager.SetValue"/></param>
 public override void SetValue(object newValue)
 {
     if (CurrentMessageContextItems != null)
     {
         CurrentMessageContextItems.Add(_key, newValue);
     }
 }
        /// <summary>
        /// <see cref="M:Microsoft.Practices.Unity.LifetimeManager.RemoveValue"/>
        /// </summary>
        public override void RemoveValue()
        {
            object value = null;

            if (CurrentMessageContextItems != null)
            {
                value = CurrentMessageContextItems[_key];
                if (value != null)
                {
                    CurrentMessageContextItems.Remove(_key);
                    if (value is IDisposable)
                    {
                        (value as IDisposable).Dispose();
                    }
                }
            }
        }