示例#1
0
        public T Get <T>(string key, string dependentFilePath, Func <string, object> resolveValue)
            where T : class
        {
            FileCacheResolver resolver;

            if (!resolvers.TryGetValue(key, out resolver))
            {
                resolver = new FileCacheResolver
                {
                    Key      = key,
                    FileName = dependentFilePath,
                    Resolver = resolveValue
                };

                resolvers[key] = resolver;
            }

            var value = HttpRuntime.Cache[key];

            if (value == null)
            {
                value = resolver.Resolver(resolver.FileName);
                HttpRuntime.Cache.Insert(key, value, new CacheDependency(resolver.FileName));
            }

            return(value as T);
        }
示例#2
0
 public void Init()
 {
     root     = SetupDirectory("Self", new[] { 1, 2, 0, 4, 5, 0, 0 });
     nearest  = SetupDirectory("Nearest", new[] { 11, 12, 13, 14, 15, 0, 0 });
     master   = SetupDirectory("Mester", new[] { 21, 22, 23, 24, 25, 26, 0 });
     reserved = SetupDirectory("Reserved", new[] { 31, 32, 33, 34, 35, 36, 37 });
     web      = SetupDirectory("Web", new[] { 41, 42, 43, 44, 45, 46, 46, 48 });
     cache    = new FileCacheResolver(root, nearest, new FileCacheSource(master)
     {
         IsMaster = true
     }, reserved);
 }
示例#3
0
 /// <summary>
 ///     Установить источник в виде кэша, завязанного на другие источники
 /// </summary>
 /// <param name="key"></param>
 /// <param name="config"></param>
 public void SetCachedRoot(string key, XElement config)
 {
     caches[key] = new FileCacheResolver(config);
 }