我正在尝试找到如何使用依赖注入来注入ConnectionString或自定义AppSetting对象到目前为止我最终在启动时使用
services.Configure<IConnectionStrings>(Configuration.GetSection("MyConnection"));
示例图层
其中web仅查看业务逻辑等,模型可供所有人使用。
在DAL项目中,我有一个对象,负责连接和运行对我的数据库(CDbTools对象)的查询。
现在,如何直接注入CDbTools而无需从控制器下载到DAL。
谢谢。
答案 0 :(得分:1)
依赖注入肯定需要一点点习惯,而且你不会像以前那样创建对象。你想要做的是首先修改你的CDbTools以获取注入的字符串。
public CDbTools(IConnectionStrings strings)
{
_connectionString = strings
}
下一步是将CDbTools实际注入需要它的类中。首先,在启动时注册它。
services.AddScoped<CDbTools>();
你需要关注这个链条。不要认为它是从顶层向下传递物体 - 这会弄乱你的关注点分离。每个图层都注入了较低层。这不仅可以让您注入正在寻找的字符串。它可以让你更容易地模拟事物,更容易交换图层,以及一系列其他好处。
答案 1 :(得分:0)
我相信您应该将它添加到您的ConfigureServices方法中:
services.Configure<CustomSettings>(settings =>
{
Configuration.GetSection("CustomSettings").Bind(settings);
});
其中services是您的IServiceCollection对象,CustomSettings是您要注入的自定义配置类。该自定义对象应映射到您的设置字段。
希望这有帮助!