争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

用System.Web.Caching.Cache保存数据类的缓存

时间:2024/7/5作者:未知来源:争怎路由网人气:

 public class DataProvider
 {
  public static IDataProvider Instance()
  {
   //use the cache because the reflection used later is expensive
   Cache cache = System.Web.HttpContext.Current.Cache;

   if ( cache["IDataProvider"] == null )
   {
    //get the assembly path and class name from web.config
    String prefix = "";
    NameValueCollection context =

(NameValueCollection)ConfigurationSettings.GetConfig("appSettings");
    if (context == null)
    {
     //can not get settings
     return null;
    }

    String assemblyPath = context[prefix +

"DataProviderAssemblyPath"];
    String className = context[prefix +

"DataProviderClassName"];

    // assemblyPath presented in virtual form, must convert to

physical path
    assemblyPath =

HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath + "/bin/" +

assemblyPath);     

    // Uuse reflection to store the constructor of the class

that implements IWebForumDataProvider
    try
    {
     cache.Insert( "IDataProvider", Assembly.LoadFrom(

assemblyPath).GetType( className ).GetConstructor(new Type[0]), new CacheDependency(

assemblyPath ) );
    }
    catch (Exception)
    {

     // could not locate DLL file
     HttpContext.Current.Response.Write("<b>ERROR:</b>

Could not locate file: <code>" + assemblyPath + "</code> or could not locate class <code>" +

className + "</code> in file.");
     HttpContext.Current.Response.End();
    }
   }
   return (IDataProvider)( 

((ConstructorInfo)cache["IDataProvider"]).Invoke(null) );
  }
 }





关键词:用System.Web.Caching.Cache保存数据类的缓存




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版