需要从C#web Application的类文件中访问文件内容

时间:2015-12-23 20:11:32

标签: c# web hosting httpcontext

我正在尝试从后台作业中读取一个已写在类文件中的电子邮件模板。我尝试使用HttpContext.Current.Server.MapPath("~/path"),但由于HttpContext无效,因此无效。

此外,我尝试使用System.Web.Hosting.HostingEnvironment.MapPath("~/path")并且我正在获取路径,但是因为无法找到文件而导致错误。 我们的应用程序托管在共享主机中。

任何想法如何从C#Web应用程序中的类文件中读取文件内容。

1 个答案:

答案 0 :(得分:0)

类文件已编译,不包含在内容中。这就是您无法访问模板的原因。如果要将模板作为属性访问,则在文件中创建一个类,并使用属性/字段公开模板。

public static class Templates {
    public static string Email_Template = "{email template}";
}

我有类似的情况,我需要访问电子邮件的模板以及api的降价文档。

以下是我解决问题的方法。

  • 在Web应用程序项目中创建 App_Data 文件夹。

  • 在先前创建的文件夹中创建模板文件,并使用电子邮件模板填充该文件。我的 EmailTemplate.txt / Documentation.md

  

EmailTemplate.txt

     

{这是我的电子邮件模板}

  • 假设您使用的是Visual Studio,请在文件的属性选项卡中将构建操作设置为内容

  • 访问文件内容:

var path = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/EmailTemplate.txt");
var text = System.IO.File.ReadAllText(path);
//Do whatever formatting I needed to do with the template

如果HttpContext不起作用,那就试试吧

System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/EmailTemplate.txt");

但请记住,您需要将模板文件作为内容进行访问,以便可以访问它。