Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 子对象上的依赖注入_Asp.net Core_Asp.net Core Mvc_.net Core_Asp.net Core 1.0 - Fatal编程技术网

Asp.net core 子对象上的依赖注入

Asp.net core 子对象上的依赖注入,asp.net-core,asp.net-core-mvc,.net-core,asp.net-core-1.0,Asp.net Core,Asp.net Core Mvc,.net Core,Asp.net Core 1.0,我试图找到如何使用依赖项注入来注入ConnectionString或自定义AppSetting对象,到目前为止,我在启动时使用 services.Configure<IConnectionStrings>(Configuration.GetSection("MyConnection")); services.Configure(Configuration.GetSection(“MyConnection”); 示例层 Web MVC应用程序 业务逻辑(类库) 存储库(类库) D

我试图找到如何使用依赖项注入来注入ConnectionString或自定义AppSetting对象,到目前为止,我在启动时使用

services.Configure<IConnectionStrings>(Configuration.GetSection("MyConnection"));
services.Configure(Configuration.GetSection(“MyConnection”);
示例层

  • Web MVC应用程序
  • 业务逻辑(类库)
  • 存储库(类库)
  • DAL(类库)
  • 模型(类库)
当web只看到业务逻辑等时,on模型对所有人都可用

在DAL项目中,我有一个对象负责连接和运行针对我的数据库的查询(CDbTools对象)

现在,我如何直接注入CDbTools,而不必从控制器到DAL


谢谢。

我认为您应该在ConfigureServices方法中添加以下内容:

services.Configure<CustomSettings>(settings =>
{
    Configuration.GetSection("CustomSettings").Bind(settings);
});
services.Configure(设置=>
{
Configuration.GetSection(“CustomSettings”).Bind(设置);
});
其中,服务是IServiceCollection对象,CustomSettings是要注入的自定义配置类。该自定义对象应映射到设置字段


希望这有帮助

依赖项注入肯定需要一点时间来适应,而且您将不会像以前那样创建对象。您首先要做的是修改您的CDbTools以获取注入的字符串

public CDbTools(IConnectionStrings strings)
{
    _connectionString = strings
}
下一步是将CDbTools实际注入到需要它的类中。首先,在启动中注册它

services.AddScoped<CDbTools>();
services.addScope();

你需要沿着这个链条走下去。不要把它看作是从顶层向下传递对象——这会弄乱您的关注点分离。每层注入较低的一层。这不仅仅是给你注射你正在寻找的绳子。它可以让您更轻松地模拟事物,更轻松地交换层,以及一系列其他好处。

这是如何将其传递给我的自定义对象的?当我在Ctor中添加它时,它不会编译,因为我需要将它从控制器一直传递到DALIf。如果我理解您的问题,那么您将把可注入对象添加到控制器的构造函数中。依赖注入就是这样工作的。此链接可能更有帮助:请提供一个链接。