/// <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); })); }
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; } }
public static IDisposable UseLocalContainer(IContainer localContainer) { LocalContainerStack.Push(localContainer); return(new DisposableAction(() => Reset(localContainer))); }