public void Register(string name, CallbackReturnHandler <object> callback) { if (!innerMapping.ContainsKey(name)) { innerMapping.Add(name, callback); } }
public T GetEntity <T, P>(string category, P para, TimeSpan durationTime, CallbackReturnHandler <P, T> handler) where T : class { //Dictionary<string, T> cacheDict = HttpRuntime.Cache[category] as Dictionary<string, T>; //string key = para.ToString().ToLower(); //if (cacheDict == null) //{ // cacheDict = new Dictionary<string, T>(); // DateTime absoluteTime = DateTime.MaxValue; // if (durationTime != TimeSpan.MaxValue) // { // absoluteTime = DateTime.Now.Add(durationTime); // } // HttpRuntime.Cache.Insert(category, cacheDict, null, absoluteTime, TimeSpan.Zero); //} //T result = null; //if (cacheDict.ContainsKey(key)) //{ // result = cacheDict[key]; //} //else //{ // result = handler(para); // if (result != null) // { // cacheDict.Add(key, result); // } //} string name = string.Format("{0}_{1}", category, para.ToString()).ToLower(); T result = HttpRuntime.Cache[name] as T; if (result == null) { result = handler(para); if (result != null) { DateTime absoluteTime = DateTime.MaxValue; if (durationTime != TimeSpan.MaxValue) { absoluteTime = DateTime.Now.Add(durationTime); } HttpRuntime.Cache.Insert(name, result, null, absoluteTime, TimeSpan.Zero); } } return(result); }
/// <summary> /// Catch all the exception to invoke the delegate. /// </summary> /// <typeparam name="T">the generic type of the return value of the delegate.</typeparam> /// <param name="callback">the delegate.</param> /// <returns>the result of the delegate.</returns> public static T CatchAll <T>(CallbackReturnHandler <T> callback) { try { return(callback()); } catch { } return(default(T)); }
public T GetEntity <T>(string name, TimeSpan durationTime, CallbackReturnHandler <T> handler) where T : class { name = name.ToLower(); T result = HttpRuntime.Cache[name] as T; if (result == null) { result = handler(); if (result != null) { DateTime absoluteTime = DateTime.MaxValue; if (durationTime != TimeSpan.MaxValue) { absoluteTime = DateTime.Now.Add(durationTime); } HttpRuntime.Cache.Insert(name, result, null, absoluteTime, TimeSpan.Zero); } } return(result); }