我想使用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
的文档我们目前正在研究这个主题。
答案 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"
},
}