从.Net Core 2.0 Web应用程序中的apppsettings.json文件中读取值[重复]
Posted
技术标签:
【中文标题】从.Net Core 2.0 Web应用程序中的apppsettings.json文件中读取值[重复]【英文标题】:Read values from apppsettings.json file in .Net Core 2.0 web application [duplicate] 【发布时间】:2019-10-19 02:30:11 【问题描述】:我正在 .Net Core 2.0 中启动一个小型开源项目,以了解此技术。 我有一个空项目,我需要从远程 URL 提要中读取 beginig。我需要那个,可以修改 URL,我认为最好的方法是将它写在项目的 appsettings.json 文件中。但我不知道如何从 Startup.cs 类中读取此文件。
我已经尝试过了,但在 .Net Core 项目中不起作用
ConfigurationManager.AppSettings["DataURL"];
这是 Startup.cs 类的内容:
public class Startup
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
app.Run(async (context) =>
await context.Response.WriteAsync("Hello World!");
using (WebClient wc = new WebClient())
string jsonData = wc.DownloadString("http://servizos.meteogalicia.gal/rss/observacion/ultimos10minPlataformas.action");
JObject jsonObject = JObject.Parse(jsonData);
);
【问题讨论】:
docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/… 可能需要System.Configuration.ConfigurationManager
nuget,参考:***.com/questions/47591910/…
我已经完成了(在nuget包管理器中添加System.Configuration.Configurationmanager)。但 ConfigurationManager.AppSettings 为空。我的 appsettings.json 文件有以下内容: "Logging": "LogLevel": "Default": "Warning" , "AllowedHosts": "*", "DataURL": "servizos.meteogalicia.gal/rss/observacion/…" 跨度>
谢谢@nlawalker,我已经用你的链接解决了。
【参考方案1】:
使用依赖注入,您将为您完成 IConfiguration 对象。看到这个
public class Startup
private readonly IConfiguration _ConfigurationManager ;
public Startup(IConfiguration config)
_ConfigurationManager = config;
......
您现在可以使用 var DataURL =_ConfigurationManager ConfigurationManager["DataURL"];
读取 appsettings 值
【讨论】:
【参考方案2】:您可以使用 Newtonsoft 反序列化 appsettings.json。
1:创建一个代表json文件的类。 2:读取文件 3:使用newtowsoft将流转换为点1的类的een对象。
源代码here.
public class Movie
public string Name get; set;
public int Year get; set;
// read file into a string and deserialize JSON to a type
Movie movie1 = JsonConvert.DeserializeObject<Movie>(File.ReadAllText(@"c:\movie.json"));
// deserialize JSON directly from a file
using (StreamReader file = File.OpenText(@"c:\movie.json"))
JsonSerializer serializer = new JsonSerializer();
Movie movie2 = (Movie)serializer.Deserialize(file, typeof(Movie));
【讨论】:
谢谢,是个好建议。以上是关于从.Net Core 2.0 Web应用程序中的apppsettings.json文件中读取值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在新创建的 .NET Core 2.0 Web 应用程序中定位 .NET Standard 2.0?
.NET Core 2.0 中的 HttpWebRequest 抛出 302 Found Exception
AuthorizeAttribute with JWT Token- .NET Core 2.0 中的身份验证
如何从 .Net core 2.0 中的 HttpContext 获取访问令牌
Asp.net Core 2.0 web api 基础框架 详解
在 HTTPS 上使用 Windows 身份验证首次调用 ASP.NET Core 2.0 Web API 在 Chrome 中总是失败