如何将.txt文件的内容包含到C#应用程序中并读取内容?

时间:2016-02-06 12:28:12

标签: c# asp.net

我有代码在注册时向用户发送电子邮件:

await UserManager.SendEmailAsync(2, "Confirm your account", "Large amount of text here");

我想要包含的文本是几百行HTML,这对我来说太难以直接插入到我的C#代码中。我有一个建议是创建一个.txt文件,将其嵌入我的程序集中,并使用Assembly.GetManifestResourceStream进行读取。

有人可以就我如何做到这一点给我一些建议吗?

2 个答案:

答案 0 :(得分:1)

  

我想要包含的文本是几百行HTML   对我来说太直接插入我的C#代码了。我曾有一个   建议创建.txt文件,将其嵌入我的程序集中,然后阅读   与Assembly.GetManifestResourceStream。

好吧,您可以尝试按照概述的步骤操作。向项目中添加新的emailBody.html文件,并将其Build Action设置为Embedded Resource。现在您可以阅读其内容:

var assembly = typeof(SomeClassFromTheAssemblyThatContainsTheHTML).Assembly;
using (var stream = assembly.GetManifestResourceStream("YourProjectName.emailBody.html"))
using (var reader = new StreamReader(stream))
{
    string body = reader.ReadToEnd();
    await UserManager.SendEmailAsync(2, "Confirm your account", body);
}

答案 1 :(得分:0)

还有一个选择是将其保留为.txt文件,并使用File.ReadAllText()将其作为字符串输入。电子邮件通常都很小,所以没关系。

这为您提供了(无论是嵌入式资源还是硬编码字符串)能够修改电子邮件内容而无需重新编译应用程序的优势。它的缺点是你需要管理它的权限。

这是MSDN link

这是在ASP.Net中执行此操作的related post