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); }
/// <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> //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); }
/// <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; }