Exemplo n.º 1
0
 /// <summary>
 /// This allows you to override the global container locally
 /// Useful for scenarios where you are replacing the global container
 /// but needs to do some initializing that relies on it.
 /// </summary>
 /// <param name="localContainer"></param>
 /// <returns></returns>
 public static IDisposable UseLocalContainer(IWindsorContainer localContainer)
 {
     LocalContainerStack.Push(localContainer);
     return(new DisposableAction(delegate
     {
         Reset(localContainer);
     }));
 }
Exemplo n.º 2
0
 public static void Reset(IWindsorContainer containerToReset)
 {
     if (containerToReset == null)
     {
         return;
     }
     if (ReferenceEquals(LocalContainer, containerToReset))
     {
         LocalContainerStack.Pop();
         if (LocalContainerStack.Count == 0)
         {
             Local.Data[LocalContainerKey] = null;
         }
         return;
     }
     if (ReferenceEquals(GlobalContainer, containerToReset))
     {
         GlobalContainer = null;
     }
 }
Exemplo n.º 3
0
 public static IDisposable UseLocalContainer(IContainer localContainer)
 {
     LocalContainerStack.Push(localContainer);
     return(new DisposableAction(() => Reset(localContainer)));
 }