У меня есть следующее в моих appSetting.json
;
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"MailServiceSettings": {
"SmtpServer": "<server>",
"ToAddresses": [
"email@domain.com",
"email2@domain.com"
],
"UserName": "username",
"Password": "password"
}
}
и в appSettings.Development.json
у меня есть тонкое изменение;
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"MailServiceSettings": {
"SmtpServer": "<server>",
"ToAddresses": [
"development@domain.com"
],
"UserName": "username",
"Password": "password"
}
}
Это так, я могу отправлять текстовые сообщениянастройки отправителя на моем локальном хосте без бомбардировки живого почтового ящика.
Однако, когда я запускаю в режиме отладки, параметры из appSettings.json
вводятся вместо appSettings.Development.json
.
Мой Program.cs
использует значение по умолчанию WebHostBuilder
;
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args)
.Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
}
и настройте DI следующим образом в моем StartUp.cs
;
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.Configure<MailServiceSettings>(Configuration.GetSection("MailServiceSettings"));
// In production, the Angular files will be served from this directory
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
}
Затем, когда я отлаживаю и ломаю конфигурацию, я вижу, что appSettings.Development.json
прочитано (как яво время отладки можно углубиться в разделы Configuration
. Я вижу, что они добавляются как дополнительная запись, и я считаю, что WebHost.CreateDefaultbuilder
добавляет файлы env.EnvironmentName
по умолчанию).
Однако, когда я создаю экземплярметод контроллера;
public ContactController(IOptions<MailServiceSettings> mailSettings, IHostingEnvironment hostingEnvironment)
{
_mailSettings = mailSettings;
_hostingEnvironment = hostingEnvironment;
}
Я обнаружил, что 2x адрес электронной почты из appSettings.json
вводится вместо appSettings.Development.json
Я также проверил env.IsDevelopment()
во время выполнения иэто возвращается true
.
Может кто-нибудь сказать мне, что я здесь делаю неправильно?