当前位置:  开发笔记 > 编程语言 > 正文

在大型文本模板中替换令牌的最佳方法

如何解决《在大型文本模板中替换令牌的最佳方法》经验,为你挑选了2个好方法。

我有一个大文本模板,需要将标记化的部分替换为其他文本.令牌看起来像这样:## USERNAME ##.我的第一直觉只是使用String.Replace(),但是有更好,更有效的方法还是已经为此优化的Replace()?



1> Greg Hurlman..:

你正在寻找System.Text.RegularExpressions.Regex.Replace() - 如果你的令牌很奇怪,你需要一个正则表达式来找到它们.

某种灵魂做了一些性能测试,在Regex.Replace(),String.Replace()和StringBuilder.Replace()之间,String.Replace()实际上名列前茅.



2> Slavo..:

我必须这样做的唯一情况是发送模板化的电子邮件.在.NET中,MailDefinition类提供了开箱即用的功能.这就是你创建模板化消息的方式:

MailDefinition md = new MailDefinition();
md.BodyFileName = pathToTemplate;
md.From = "test@somedomain.com";

ListDictionary replacements = new ListDictionary();
replacements.Add("<%To%>", someValue);
// continue adding replacements

MailMessage msg = md.CreateMailMessage("test@someotherdomain.com", replacements, this);

在此之后,将通过替换模板中的值来创建msg.Body.我想你可以看一下使用Reflector :)的MailDefinition.CreateMailMessage().很抱歉有点偏离主题,但如果这是你的情景,我认为这是最简单的方法.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有