/// <summary> /// 设置题目描述中给定部分的 HTML 表示。 /// </summary> /// <param name="part">要设置的题目描述逻辑部分。</param> /// <param name="html">给定部分的 HTML 表示。</param> /// <exception cref="ArgumentNullException"/> public void SetProblemPart(ProblemParts part, string html) { if (html == null) { throw new ArgumentNullException(nameof(html)); } if (m_parts.ContainsKey(part)) { m_parts[part] = html; } else { m_parts.Add(part, html); } m_dirty = true; }
/// <summary> /// 获取题目描述中给定部分的 HTML 表示。 /// </summary> /// <param name="part">要查询的题目描述逻辑部分。</param> /// <returns>给定部分的 HTML 表示。</returns> public string GetProblemPart(ProblemParts part) { if (m_parts.ContainsKey(part)) { return(m_parts[part]); } // 缓存中未找到指定的逻辑部分。读取本地文件系统以查找。 string filename = GetProblemPartFilename(part); if (File.Exists(filename)) { // 将数据存入缓存中。 string content = File.ReadAllText(filename); m_parts.Add(part, content); return(content); } else { return(string.Empty); } }
/// <summary> /// 获取题目描述中给定部分的文件名。 /// </summary> /// <param name="part">要查询的题目描述逻辑部分。</param> /// <returns>给定部分的文件名。</returns> private string GetProblemPartFilename(ProblemParts part) { return(string.Concat(m_problemDirectory, "\\", PartFileName[part])); }