建议的做法是存储邮件模板

时间:2011-09-09 18:55:51

标签: c# email

我的应用程序向用户发送通知邮件,因此我为每种类型的通知创建了一个html模板。我将模板中的字段设置为{n},以便在发送消息时使用类似的内容:

string bodyTemplate = GetBodyTemplate(); //gets the html template with {n} in it
message.Body = String.Format(bodyTemplate, fieldZeroValue, fieldOneValue);

例如,模板可以包含以下内容:

<td style="vertical-align:middle;padding:0.5em 0.5em 0.5em 0.5em;">
    <a href="www.mypage1az.com\SomePage.aspx?Id={0}">Go to page</a>
</td> 

在这个例子中我会使用:

message.Body = String.Format(bodyTemplate, IdValue.ToString());

以下是我的问题:我应该在哪里用html模板存储这些非常长的字符串? 我不想连接到数据库来获取它们并将它们存储在字符串常量中看起来很糟糕。

请告诉我存储这些字符串的推荐做法是什么。

2 个答案:

答案 0 :(得分:3)

我创建文本文件并将模板存储在项目中。如果没有太多,你可以将它们构建到你的程序集中,并将它们从资源中取出。如果有很多,我会指向一个包含文件的目录,并使用字符串阅读器来选择文件名。

答案 1 :(得分:1)

前几天,我听到了一个关于使用#regions的论点的智慧之珠。 “亲#regions”家伙说,“但我想隐藏丑陋的代码”,“反#regions”家伙说“如果它太丑了,你就不应该写它。”

看到你从丑陋的常数中获得代码味道让我大笑。

将它放入数据库的厌恶是什么?这是经常得到它的成本吗?如果是这样,那么可能会缓存它并以合理的间隔从数据库中重新提取。这样,您可以保持添加或更改模板的灵活性,而无需每次都访问数据库。

如果常量会一直工作而且你讨厌他们是丑陋的,那么用#region隐藏它们:)