gpt4 book ai didi

asp.net-core-mvc - 如何读取 .NET Core 中属性内的配置(appsettings)值?

转载 作者:行者123 更新时间:2023-12-03 23:37:49 25 4
gpt4 key购买 nike

我有一个 .NET Core 1.1 应用程序,在 HomeController 中的操作上设置了自定义属性。鉴于我需要属性逻辑内的配置文件 (appsettings.json) 中的值,是否可以在属性级别访问配置?

appsettings.json

{
"Api": {
"Url": "http://localhost/api"
}
}

HandleSomethingAttribute.cs
public class HandleSomethingAttribute : Attribute, IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// read the api url somehow from appsettings.json
}

public void OnActionExecuted(ActionExecutedContext context)
{
}
}

HomeController.cs
public class HomeController: Controller
{
[HandleSomething]
public IActionResult Index()
{
return View();
}
}

最佳答案

我也在做同样的事情。我做了类似 Dzhambazov 的事情的解决方案,但为了获得我使用的环境名称 Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") .我把它放在一个静态类的静态变量中,我可以从我项目的任何地方读取它。

public static class AppSettingsConfig
{
public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true)
.Build();
}

我可以像这样从属性中调用它:
public class SomeAttribute : Attribute
{
public SomeAttribute()
{
AppSettingsConfig.Configuration.GetValue<bool>("SomeBooleanKey");
}
}

关于asp.net-core-mvc - 如何读取 .NET Core 中属性内的配置(appsettings)值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45934287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com