[英]Global Variables in ASP.Net Core 2
我正在ASP.NET Core中開發一個Web應用程序,目前有一大組密鑰,例如條帶帳戶密鑰。 我們希望將它們全部放在json中,而不是讓它們在不同的類中傳播到整個項目中。 我已經嘗試將它們放在appsettings.json中但無法在任何地方訪問它們。
我經常使用連接字符串和其他全局常量來做這種事情。 首先為您需要的變量創建一個類。 在我的項目中,它是MDUOptions
但無論你想要什么。
public class MDUOptions
{
public string mduConnectionString { get; set; }
public string secondaryConnectionString { get; set; }
}
現在在您的Startup.cs ConfigureServices方法中:
Action<MDU.MDUOptions> mduOptions = (opt =>
{
opt.mduConnectionString = Configuration["ConnectionStrings:mduConnection"];
});
services.Configure(mduOptions);
services.AddSingleton(resolver => resolver.GetRequiredService<IOptions<MDUOptions>>().Value);
現在您使用DI在代碼中訪問它:
public class PropertySalesRepository : IPropertySalesRepository
{
private static string _mduDb;
public PropertySalesRepository(MDUOptions options)
{
_mduDb = options.mduConnectionString;
}
....
}
在我的情況下,我想要的唯一屬性是字符串,但我可以使用整個選項類。
在appsettings.json中保留變量。
{
"foo": "value1",
"bar": "value2",
}
創建AppSettings類。
public class AppSettings
{
public string foo { get; set; }
public string bar { get; set; }
}
在Startup.cs文件中注冊。
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration);
}
用法,
public class MyController : Controller
{
private readonly IOptions<AppSettings> _appSettings;
public MyController(IOptions<AppSettings> appSettings)
{
_appSettings = appSettings;
}
var fooValue = _appSettings.Value.foo;
var barValue = _appSettings.Value.bar;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.