我们正在使用自定义 HttpModule 构建一个文本模板引擎,该引擎用 XML 文件中的整个文本部分替换 HTML 中的标签。
目前,XML 文件作为字符串/字符串字典加载到内存中,以便可以使用正则表达式非常快速地执行 HttpModule 完成的查找/替换。
我们希望扩大它的使用范围,以合并越来越大的替换文本部分,并且我担心将更详细的文本作为字典的一部分一次保留在内存中,特别是当我们使用 ASP 时。 NET 缓存也有多种用途。
有人对我们可以使用的更高效、可扩展的数据结构/管理策略有建议吗?
更新:针对下面 Corbin March 的伟大建议,我不认为这是我们走上“黑暗之路”的情况(尽管我很欣赏这种担忧)。我们的应用程序旨在针对不同的客户进行完全重新设计,甚至包括页面上任何位置的文本 - 包括使用多种语言的能力。事实证明,我所描述的技术是处理此问题的最灵活的方法。
最佳答案
您使用的内存量将与文件的大小大致相同。 XML 在标签中会产生一些字典不会产生的开销,因此它是对内存需求的安全估计。那么您说的是 10-50 MB 还是 100-500 MB?我不一定担心 10 到 50 MB。
如果您担心,那么您需要考虑是否真的需要在每次加载页面时进行替换。您能否承受每页访问一次数据库或 XML 文件,然后缓存 ASP.NET 页面的输出并将其保留一个小时?如果是这样,请考虑使用 Page Caching .
关于c# - ASP.NET 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/277875/