c# – appSettings.json中的自定义键在ASP.NET Core 2.0中不起作
我在ASP.NET Core项目的appSettings.json中添加了一个CustomSettings部分键:
{ "ConnectionStrings": { "DefaultConnectionString": "Data Source=..." },"Logging": { "IncludeScopes": false,"LogLevel": { "Default": "Warning" } },"CustomSettings": { "Culture": "es-CO" } } 我无法在以下控制器中加载Culture键: public AccountController( UserManager<ApplicationUser> userManager,SignInManager<ApplicationUser> signInManager,IEmailSender emailSender,ILogger<AccountController> logger,IConfiguration configuration) { Response.Cookies.Append( CookieRequestCultureProvider.DefaultCookieName,CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(configuration.GetSection("CustomSettings")["Culture"])),new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) } ); } 无论我是否遵循,总是返回NULL: 我尝试了基于ASP.NET Core: Step by Step Guide to Access appsettings.json in web project and class library的帮助,并且我创建了具有字符串Culture属性的CustomSettings类,并在Startup中注入如下: // Load Custom Configuration from AppSettings.json services.Configure<Models.CustomSettings>(Configuration.GetSection("CustomSettings")); 通过注入IOptions来访问customSettings,其值为 第一个问题:?我做错了什么或缺少什么? 第二个问题:?为什么在HomeController的索引中执行以下操作会引发异常? public class HomeController : Controller { public IActionResult Index(IConfiguration configuration) { } } 例外: 处理请求时发生未处理的异常. Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.CreateModel(ModelBindingContext bindingContext) 第三个问题:我需要根据appSettings.json上的Culture属性为后台的所有应用程序设置Culture,我读了MSDN documentation,但是我无法实现这一点,?我怎样才能实现这个目标? 谢谢 解决方法
首先创建与appsetting部分匹配的模态
public class CustomSettings { public string Culture { get; set; } } 然后在Startup.cs中的ConfigureServices方法中注册它 services.Configure<CustomSettings>(Configuration.GetSection("CustomSettings")); 然后使用需要的IOptions注入它 AccountController(IOptions<CustomSettings> settings) { _settings = settings.Value; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |