您的位置:首页 > 其它

利用Attribute和反射从模板生成短信

2009-05-31 23:43 169 查看
根据模板生成短信,这是一个比较常见的需求。说白了,就是如何把短信模板中的关键字替换掉,变成实际的、有意义的短信。

例如短信模板如下:"[用户名],今天是[日期],[内容]",那“[用户名]”、“[日期]”、“[内容]”,就是关键字。

大家会说,这还不容易,我写个函数替换下不就行了?

Message msg = new Message() { UserName = "张三", Content = "祝你生日快乐",Date=DateTime.Now.ToString("yyyy-MM-dd")};
Dictionary<string,string> nvc = SmsGeneratorHelper.GetMessageKeyValue(msg);
string template = "[用户名],今天是[日期],[内容]";
Console.WriteLine("模板是:{0}", template);

foreach(KeyValuePair<string,string> kvp in nvc)
{
template = template.Replace(kvp.Key, kvp.Value);
}
Console.WriteLine("替换后的内容:{0}", template);

看到了吧,结果出来了,而那段恶心的代码“template.Replace("[用户名]", userName).Replace("[日期]", date).Replace("[内容]", content)”消失了。

如果有新模板了,直接写一个模板实体类,将里面的字段贴上[Description("xxx")]标签就可以很方便生成短信了。

至于如何给模板实体类赋值(具体业务的问题),那就不是本文讨论的范围了。

本文只提供一种思路,欢迎各位拍砖。
[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐