Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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);
        }