Aujourd'hui, j'essayais le nouveau noyau asp.net 2.0, mais j'ai eu des problèmes avec un fichier de configuration JSON que je ne devais pas injecter dans la propriété du constructeur de configuration IConfiguration.mvc core 2.0, comment utiliser un fichier appSettings.json via la configuration
En noyau asp.net 1.1 Je voudrais utiliser ce code suivant dans StartUp:
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();
}
et pourrait y accéder à partir du code comme:
private string _mailTo = Startup.Configuration["mailSettings:mailToAddress"];
Cependant Dans Core 2.0, ils ont changé pour IConfiguration et il est déjà défini de plus je ne vois aucun moyen que je peux utiliser la configuration dans mes autres classes, donc je ne sais pas comment procéder.
Le 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?}");
});
}
}
}
mon fichier JSON:
{
"mailSetings": {
"mailToAddress": "admin[email protected]",
"mailFromAddress": "[email protected]"
}
}
ma classe personnalisée voulant utiliser les paramètres (notez qu'il était comment j'utiliserais noyau 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}");
}
}
}
toute aide serait très appréciée, Cheers!
La question est de savoir comment * utiliser * la configuration dans le reste de l'application. Cela ne répond pas à ça. – NightOwl888
@ NightOwl888 merci, n'a pas été trop prudent, ont mis à jour post – Set