需要访问C#web应用程序的类文件中的文件内容

本文关键字:文件 C#web 应用程序 访问 | 更新日期: 2023-09-27 18:27:57

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

此外,我尝试使用System.Web.Hosting.HostingEnvironment.MapPath("~/path"),我正在获取路径,但由于找不到文件,它引发了错误。我们的应用程序托管在共享托管中。

知道如何在C#Web应用程序中从类文件中读取文件内容吗。

需要访问C#web应用程序的类文件中的文件内容

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

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");

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