现在的位置: 首页 > 综合 > 正文

依赖注入研究

2012年06月06日 ⁄ 综合 ⁄ 共 2319字 ⁄ 字号 评论关闭

依赖注入研究:

View Code

public class BaseBusiness
    {
        protected ITSysOperationLogDal buLog;

        public BaseBusiness(ITSysOperationLogDal log) 
        {
            this.buLog = log;
        }

        /// <summary>
        /// 返回T类型的实体,T需要继承BaseBusiness
        /// 默认container节点名称为业务类名称
        /// </summary>
        /// <typeparam name="T">返回值类型</typeparam>
        /// <returns></returns>
        public static T Create<T>() where T : BaseBusiness
        {
            IUnityContainer container = new UnityContainer();
            UnityConfigurationSection section = (UnityConfigurationSection)System.Configuration.ConfigurationManager.GetSection("unity");
            section.Configure(container, typeof(T).Name);
            T tModel = (T)container.Resolve<BaseBusiness>();
            return tModel;
        }

        /// <summary>
        /// 返回T类型的实体,T需要继承BaseBusiness
        /// </summary>
        /// <typeparam name="T">返回值类型</typeparam>
        /// <param name="containerName">需要实例化的container节点名称</param>
        /// <returns></returns>
        public static T Create<T>(string containerName) where T : BaseBusiness
        {
            IUnityContainer container = new UnityContainer();
            UnityConfigurationSection section = (UnityConfigurationSection)System.Configuration.ConfigurationManager.GetSection("unity");
            section.Configure(container, containerName);
            T tModel = (T)container.Resolve<BaseBusiness>();
            return tModel;
        }

        /// <summary>
        /// 保存日志,用户信息从Cookie获取
        /// </summary>
        /// <param name="opType">操作类型</param>
        /// <param name="remark">备注信息</param>
        protected void LogSave(OperationType opType,string remark) 
        {
            System.Web.HttpCookie userInfo = System.Web.HttpContext.Current.Request.Cookies["UserInfo"] ?? null;
            if (userInfo == null) 
            {
                SysLog.Debug("DebugLog", "用户还未登录,无法获取相关Cookie");
            }
            TSysOperationLog logModel = new TSysOperationLog()
            {
                OperationType = (short)opType,
                OperationUserID = new Guid(userInfo["UserID"]), 
                OperationUserName = userInfo["UserName"].ToString(),
                UserDomainID = new Guid(userInfo["DomainID"]),
                OperationTime = DateTime.Now,
                Remark = remark
            };
            ExHandler.Execute<bool,TSysOperationLog>(buLog.Add, logModel);
        }

        /// <summary>
        /// 保存日志,用户信息需要传入
        /// </summary>
        /// <param name="opType">操作类型</param>
        /// <param name="userID">用户ID</param>
        /// <param name="userName">用户名</param>
        /// <param name="userDomainID">用户所属域</param>
        /// <param name="remark">备注信息</param>
        protected void LogSave(OperationType opType,Guid userID, string userName, Guid userDomainID , string remark)
        {
            TSysOperationLog logModel = new TSysOperationLog()
            {
                OperationType = (short)opType,
                OperationUserID = userID,
                OperationUserName = userName,
                UserDomainID = userDomainID,
                OperationTime = DateTime.Now,
                Remark = remark
            };
            ExHandler.Execute<bool, TSysOperationLog>(buLog.Add, logModel);
        }
    }

 

抱歉!评论已关闭.