using Sy
stem; using Sy
stem.Collections.Generic; using Sy
stem.Linq; using Sy
stem.Text; using Sy
stem.IO ; using Sy
stem.Xml ; using Sy
stem.Web.Caching ; using Sy
stem.Threading ; namespace BasicCompent { public class PageC
ssprovider { static Sy
stem.Web.HttpContext cxt; static ManualResetEvent mr = new ManualResetEvent(true); static ManualResetEvent mw = new ManualResetEvent(true); static XmlDocument _doc; private PageC
ssprovider() { } static PageC
ssprovider() { cxt = Sy
stem.Web.HttpContext.Current; Init(); } public static string PageCss(string pageName) { if (string.IsNullOrEmpty(pageName)) return string.Empty; string xmpath = string.Format("/pages/page[@name=/"{0}/"]",pageName); mw.WaitOne(); mr.Reset(); try { if(_doc ==null ) return string.Empty ; XmlNode node = _doc.SelectSingleNode(xmpath); return node.InnerXml; } finally { mr.Set(); } } static void Init() { mr.WaitOne(); mw.Reset(); try { string realPath = cxt.Server.MapPath("~/Css.xml"); if (!File.Exists(realPath)) return; _doc = new XmlDocument(); _doc.Load(realPath); CacheDependency cd = new CacheDependency(realPath); cxt.Cache.Insert("pageCss",realPath,cd,Cache.NoAbsoluteExpiration,Cache.NoSlidingExpiration,CacheItemPriority.NotRemovable,reportRemovedCallback); } finally { mw.Set(); } } static void reportRemovedCallback(String key,object value,CacheItemRemovedReason reason) { Init(); } } }
原文地址:https://www.jb51.cc/javaschema/288027.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。