在asp5 dnx项目中获取json文件

时间:2016-01-14 09:26:32

标签: c# asp.net dnx

我想使用json文件中的属性

[
 {
    "Name:"Foo",
    "AnotherName":"Bar"
 }
]

位于根

上的App_Data文件夹中

在课程中我只想返回该文件

public class FooRepo{

    internal List<FooList> Get(){
       var filePath = ????
    }
}

我试过了

Server.MapPath("~/App_Data/foo.json");HttpContext.Current.Server.MapPath("~/App_Data/foo.json"")System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;

我似乎无法弄清楚如何让这个文件使用它。以下是有关主题https://docs.asp.net/en/latest/fundamentals/file-system.html

的文档
  

我们目前正在研究这个主题。

1 个答案:

答案 0 :(得分:2)

在ASP.NET5应用程序中使用json文件中的配置数据的最简单方法是在IConfIigurationRoot类中创建类型为Startup.cs的静态属性,例如

public static IConfigurationRoot Configuration

将以下代码添加到Startup类的构造函数

public Startup(IApplicationEnvironment appEnv)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(appEnv.ApplicationBasePath)
            .AddJsonFile("config.json")
            .AddEnvironmentVariables();

        Configuration = builder.Build();
    }

显然,您必须更改传递给SetBasePath方法的值,以确保您的应用程序可以找到json文件。

您可以通过静态属性

访问班级中的配置数据
 private Startup _st;
 public FooRepo(Startup st)
 {
     _st = st;
 }

 var emailAddress = _st.Configuration["AppSettings:EmailAddress"];

这是我的json文件的布局

注意:我的json文件名为config.json,已添加到项目的根文件夹中。

{
    "AppSettings": {
        "EmailAddress": "info@somedomain.com"
     },
}