using CC.Yi.DAL; using CC.Yi.IDAL; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Text; using System.Threading; namespace CC.Yi.DALFactory { public partial class StaticDalFactory { private static class CallContext { static ConcurrentDictionary> state = new ConcurrentDictionary>(); public static void SetData(string name, object data) => state.GetOrAdd(name, _ => new AsyncLocal()).Value = data; public static object GetData(string name) => state.TryGetValue(name, out AsyncLocal data) ? data.Value : null; } } }