Ejemplo n.º 1
0
        /// <summary>
        ///     Dispose
        /// </summary>
        /// <param name="iocResolve"></param>
        public virtual void Dispose(IIocResolve iocResolve)
        {
            foreach (var activeTransaction in ActiveTransations.Values)
            {
                foreach (var attendedDbContext in activeTransaction.AttendedDbContexts)
                {
                    iocResolve.Release(attendedDbContext);
                }
                activeTransaction.DbContextTransaction.Dispose();
                iocResolve.Release(activeTransaction.StartDbContext);
            }

            //清除事务
            ActiveTransations.Clear();

            foreach (var dbContext in DbContexts)
            {
                iocResolve.Release(dbContext);
            }
            //清除DbContexts
            DbContexts.Clear();

            if (CurrentTransaction == null)
            {
                return;
            }
            CurrentTransaction.Dispose();
            CurrentTransaction = null;
        }
        public virtual void Dispose(IIocResolve iocResolver)
        {
            foreach (var dbContext in DbContexts)
            {
                iocResolver.Release(dbContext);
            }

            DbContexts.Clear();

            if (CurrentTransaction != null)
            {
                CurrentTransaction.Dispose();
                CurrentTransaction = null;
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 ///  重写ioc注册
 /// </summary>
 /// <param name="controller">Controller instance</param>
 public override void ReleaseController(IController controller)
 {
     _iocManager.Release(controller);
 }
Ejemplo n.º 4
0
 public void Release(object obj)
 {
     _resolvedObjects.Remove(obj);
     _iocResolver.Release(obj);
 }