public bool Remove(string key) { bool returnValue = false; lock (Storage) if (Storage.ContainsKey(key)) { var item = Storage[key]; returnValue = Storage.Remove(key); ItemRemoved.SafeInvoke(this, item); FinalizeRemove(item); } return(returnValue); }