public void PutToPersistentInjectionQueue(string regionName, object key, Func <object> factory, string viewName, Type viewType)
 {
     foreach (InjectionItem item in PersistentInjectionQueue)
     {
         if (item.RegionName == regionName && object.Equals(item.Key, key))
         {
             throw new InvalidOperationException(Exception2);
         }
     }
     PersistentInjectionQueue.Add(new InjectionItem(regionName, key, factory, viewName, viewType));
 }
            public void RemoveFromQueues(string regionName, object key)
            {
                var injectionItem = InjectionQueue.FirstOrDefault(x => x.RegionName == regionName && object.Equals(x.Key, key));

                injectionItem.Do(x => InjectionQueue.Remove(x));
                var persistentInjectionItem = PersistentInjectionQueue.FirstOrDefault(x => x.RegionName == regionName && object.Equals(x.Key, key));

                persistentInjectionItem.Do(x => PersistentInjectionQueue.Remove(x));
                var navigationItem = NavigationQueue.FirstOrDefault(x => x.RegionName == regionName && object.Equals(x.Key, key));

                navigationItem.Do(x => NavigationQueue.Remove(x));
            }