今天我嘗試了新的asp.net 2.0核心,但跑進使用我不是在IConfiguration配置constructor屬性注入一個JSON配置文件有些麻煩。MVC 2.0的核心,如何通過配置使用appSettings.json文件
在asp.net 1.1核心我會在安裝調試使用下面的代碼:
public static IConfigurationRoot Configuration;
Public Startup(IHostingEnvironment env) {
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appSettings.json", optional: false, reloadOnChange: true)
Configuration = builder.Build();
}
,可以從代碼訪問它,如:
private string _mailTo = Startup.Configuration["mailSettings:mailToAddress"];
但是在覈心2.0它們改爲IConfiguration並且它已經定義而且我看不出有什麼辦法可以使用配置在我的其他類,所以我對如何進行一無所知還挺。
的startupClass:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Mvc.Formatters;
using NLog.Web;
using NLog.Extensions.Logging;
using cityInfoTestApi.Services;
namespace cityInfoTestApi
{
public class Startup
{
public IConfiguration Configuration { get; private set; }
public Startup(IConfiguration configuration, IHostingEnvironment env)
{
Configuration = configuration;
env.ConfigureNLog("nlog.config");
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddMvcOptions(o => o.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter()));
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddNLog();
app.AddNLogWeb();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStatusCodePages();
app.UseMvc();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
我的JSON文件:
{
"mailSetings": {
"mailToAddress": "[email protected]",
"mailFromAddress": "[email protected]"
}
}
我的自定義類想使用的設置(注意:這是我怎麼會使用核心1.1:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
namespace cityInfoTestApi.Services
{
public class LocalMailService : IMailService
{
private string _mailTo = Startup.Configuration["mailSettings:mailToAddress"];
private string _mailFrom = Startup.Configuration["mailSettings:mailFromAddress"];
public void Send(string subject, string message)
{
Debug.WriteLine($"Mail from {_mailFrom} to {_mailTo}, with LocalMailService");
Debug.WriteLine($"Subject: {subject}");
Debug.WriteLine($"Message: {message}");
}
}
}
任何幫助,將不勝感激,乾杯!
問題是關於如何在應用程序的其餘部分使用配置。這並沒有回答。 – NightOwl888
@ NightOwl888謝謝,不太細心,已更新帖子 – Set