コード例 #1
0
        internal static void InitCurrent(IRequestScopeContext context)
        {
            long key = BitConverter.ToInt64(Guid.NewGuid().ToByteArray(), 0);

            CallContext.LogicalSetData(CallContextKey, key);
            contextDict.AddOrUpdate(key, x => context, (x, y) => context);
        }
コード例 #2
0
        /// <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;
        }
コード例 #3
0
        ///// <summary>
        /////
        ///// </summary>
        //internal static IRequestScopeContext Current
        //{
        //    get
        //    {
        //        string key = (string)CallContext.LogicalGetData(CallContextKey);
        //        IRequestScopeContext context = null;
        //        contextDict.TryGetValue(key, out context);
        //        return context;
        //    }
        //    set
        //    {
        //        string key = (string)CallContext.LogicalGetData(CallContextKey);
        //        contextDict.TryUpdate(key, value, value);
        //    }
        //}


        internal static IRequestScopeContext GetCurrent()
        {
            long key = (long)CallContext.LogicalGetData(CallContextKey);
            IRequestScopeContext context = null;

            contextDict.TryGetValue(key, out context);

            return(context);
        }
コード例 #4
0
        /// <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;
        }