public static void DestroyScope() { List <IDisposable> services = null; WorkerContext context = null; if (TransientServices.TryRemove(WorkerContext.ContextIdentifier, out services)) { foreach (var item in services) { if (item != null) { item.Dispose(); } } } if (TransientContexts.TryRemove(WorkerContext.ContextIdentifier, out context)) { context.Dispose(); } }
public static IDisposable AddTransientDisposableServices(IDisposable service) { if (service != null) { if (TransientServices.ContainsKey(WorkerContext.ContextIdentifier)) { List <IDisposable> services = null; if (TransientServices.TryGetValue(WorkerContext.ContextIdentifier, out services)) { services.Add(service); TransientServices[WorkerContext.ContextIdentifier] = services; } } else { TransientServices.TryAdd(WorkerContext.ContextIdentifier, new List <IDisposable>(new[] { service })); } } return(service); }