Я часто так поступаю со строками подключения и другими глобальными константами.Сначала создайте класс для тех переменных, которые вам нужны.В моем проекте это 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;
}
....
}
В моем случае единственным желаемым свойством была строка, но я мог бы использовать весь класс параметров.