在我的Asp.Net核心API中,我有一些存储库类,我在我的Startup.cs中使用了services.AddTransient方法注入
services.AddTransient<IRepository, Repository>();
我还将我的appsettings.json的一部分加载到Startup.cs中的自定义对象中
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
我的存储库类需要从appsettings.json加载数据库连接字符串。有没有办法将这些设置直接注入存储库类?或者由控制器的构造函数将连接字符串传递给存储库类?
答案 0 :(得分:2)
是的,您可以将其直接注入您的存储库。
public MyRepository(IOptions<MyConfig> config)
{
var connString = config.Value.DbConnString;
}
其中MyConfig是您配置的POCO对象,并在启动时添加/注册:
public void ConfigureServices(IServiceCollection services)
{
...
services.Configure<MyConfig>(Configuration);
}
MyConfig看起来像这样:
public class MyConfig
{
public string DbConnString { get; set; }
}
appsettings.json就像这样:
{
"ApplicationName": "MyApp",
"Version": "1.0.0",
"DbConnString ": "my-conn-string"
}