/// <summary>
        /// 获取 HttpContextItem
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <returns></returns>
        public T GetContextItem <T>(string key)
        {
            if (string.IsNullOrWhiteSpace(key))
            {
                return(default(T));
            }

            object obj;
            IRequestScopeContext context = RequestScopeContext.GetCurrent();

            if (context != null && context.Items.TryGetValue(key, out obj) && obj != null)
            {
                return((T)obj);
            }
            else
            {
                return(default(T));
            }
            //var obj = OwinRequestScopeContext.Current.Environment[key];
            //if (obj == null)
            //{
            //    return default(T);
            //}
            //return (T)obj;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        public void BeginRequest(object context)
        {
            var environment  = System.Web.HttpContext.Current.Request.ServerVariables;
            var scopeContext = new RequestScopeContext(environment);

            RequestScopeContext.InitCurrent(scopeContext);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="environment"></param>
        /// <returns></returns>
        public async Task Invoke(IDictionary<string, object> environment)
        {
            var scopeContext = new RequestScopeContext(environment);
            RequestScopeContext.Current = scopeContext;

            try
            {
                await next(environment);
            }
            finally
            {
                RequestScopeContext.FreeContextSlot();
            }
        }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="environment"></param>
        /// <returns></returns>
        public async Task Invoke(IDictionary <string, object> environment)
        {
            var scopeContext = new RequestScopeContext(environment);

            RequestScopeContext.InitCurrent(scopeContext);

            try
            {
                await next(environment);
            }
            finally
            {
                RequestScopeContext.FreeContextSlot();
            }
        }
        /// <summary>
        /// 设置 HttpContextItem
        /// </summary>
        /// <param name="key"></param>
        /// <param name="val"></param>
        public void SetContextItem(string key, object val)
        {
            if (string.IsNullOrWhiteSpace(key))
            {
                return;
            }


            IRequestScopeContext context = RequestScopeContext.GetCurrent();

            if (context == null)
            {
                return;
            }

            context.Items[key] = val;
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="context"></param>
 public void EndRequest(object context)
 {
     RequestScopeContext.FreeContextSlot();
 }