/// <summary> /// /// </summary> static TemplateDocumentConfig() { TemplateDocumentConfig.Default = new TemplateDocumentConfig(); TemplateDocumentConfig.Full = new TemplateDocumentConfig(TagOpenMode.Full, false); TemplateDocumentConfig.Compress = new TemplateDocumentConfig(TagOpenMode.Simple, true); TemplateDocumentConfig.Compatible = new TemplateDocumentConfig(TagOpenMode.Simple, false, true); }
/// <summary> /// 根据文件内容进行解析 /// </summary> /// <param name="fileName"></param> /// <param name="charset"></param> /// <param name="documentConfig"></param> public TemplateDocument(string fileName, Encoding charset, TemplateDocumentConfig documentConfig) { string text = System.IO.File.ReadAllText(fileName, charset); this.File = Path.GetFullPath(fileName); this.Charset = charset; this.AddFileDependency(this.File); this.DocumentConfig = documentConfig; this.ParseString(this, text); }
/// <summary> /// 根据字符串进行解析 /// </summary> /// <param name="text"></param> /// <param name="documentConfig"></param> public TemplateDocument(string text, TemplateDocumentConfig documentConfig) { this.DocumentConfig = documentConfig; this.ParseString(text); }
/// <summary> /// 根据TextRader数据进行解析 /// </summary> /// <param name="reader"></param> /// <param name="documentConfig"></param> public TemplateDocument(TextReader reader, TemplateDocumentConfig documentConfig) { this.DocumentConfig = documentConfig; this.ParseString(reader.ReadToEnd()); }
/// <summary> /// 从文件缓存中构建模板文档对象 /// </summary> /// <param name="fileName"></param> /// <param name="charset"></param> /// <param name="documentConfig"></param> /// <returns></returns> public static TemplateDocument FromFileCache(string fileName, Encoding charset, TemplateDocumentConfig documentConfig) { Cache cache = HttpRuntime.Cache; if (documentConfig == null) { documentConfig = TemplateDocumentConfig.Default; } //没有缓存则直接返回实例 if (cache == null) { return(new TemplateDocument(fileName, charset, documentConfig)); } fileName = Path.GetFullPath(fileName); string cacheKey = string.Format("TEMPLATE_DOCUMENT_CACHE_ITEM_{0}_{1}_{2}", documentConfig.TagOpenMode, documentConfig.CompressText, fileName); TemplateDocument document = cache.Get(cacheKey) as TemplateDocument; if (document == null) { document = new TemplateDocument(fileName, charset, documentConfig); cache.Insert(cacheKey, document, new CacheDependency(document.FileDependencies)); } //返回副本 return(document.Clone()); }
/// <summary> /// /// </summary> private TemplateDocument(TemplateDocumentConfig documentConfig) { this.DocumentConfig = documentConfig; }
/// <summary> /// /// </summary> /// <param name="documentElement"></param> /// <param name="container"></param> /// <param name="text"></param> /// <param name="documentConfig"></param> internal TemplateDocument(Template documentElement, Tag container, string text, TemplateDocumentConfig documentConfig) { this.DocumentConfig = documentConfig; this.AppendChild(documentElement); this.ChildTemplates.Add(documentElement); this.ParseString(documentElement, container, text); }
/// <summary> /// /// </summary> /// <param name="documentElement"></param> /// <param name="text"></param> /// <param name="documentConfig"></param> internal TemplateDocument(Template documentElement, string text, TemplateDocumentConfig documentConfig) : this(documentElement, documentElement, text, documentConfig) { }