示例#1
0
        private bool GetByCache(string name, bool forced, out IWebFileRecord record)
        {
            foreach (var mask in caches)
            {
                if (name.StartsWith(mask.Key))
                {
                    var resolvedName = name.Substring(mask.Key.Length);
                    var file         = mask.Value.Resolve(resolvedName, forced);
                    if (null == file)
                    {
                        record = _cache[name] = null;
                    }
                    else
                    {
                        record = _cache[name] = new FileSystemWebFileRecord {
                            Name           = name,
                            FileSystemName = file,
                            FullName       = file
                        };
                    }

                    return(true);
                }
            }
            record = null;
            return(false);
        }
		/// <summary>
		/// 
		/// </summary>
		/// <param name="rawName"></param>
		/// <returns></returns>
		protected override WebFileRecord GetRecord(string rawName){
			var localname = rawName.NormalizePath().Replace(Root, "");
			if (!localname.StartsWith("/")) localname = "/" + localname;
			if (Prefix != "/") localname = Prefix + localname;
			var result = new FileSystemWebFileRecord{Name = localname, FileSystemName = rawName,FullName = rawName};
			return result;
		}