如何使用.NET Core依赖注入来解析一个对象需要一个对象的构造函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用.NET Core依赖注入来解析一个对象需要一个对象的构造函数?相关的知识,希望对你有一定的参考价值。

在我的应用程序中,我有一个服务,它在它的构造函数中进行一些设置

public class Service
{
    private readonly Settings _settings

    public Service(Settings settings)
    {
        _settings = settings;
    }
}

public class Settings
{
   // omitted for brevity
}

Startup.cs中配置DI时,我添加了以下服务:

services.AddTransient<Service>();

我不知道配置DI容器使用Settings对象。我怎样才能做到这一点?

我读过the official documentation,但我看不出怎么做

答案

.NET中的依赖注入通过接口工作。在你的情况下,你需要创建一个界面,如

public interface ISettings
{
    // necessary methods
}

并使您的Settings类实现此接口。然后你需要改变你的Service类并用接口替换class:

public class Service
{
    private readonly ISettings _settings

    public Service(ISettings settings)
    {
        _settings = settings;
    }
}

最后在Settings注册你的班级Startup.cs

services.AddTransient<ISettings, Settings>();

以上是关于如何使用.NET Core依赖注入来解析一个对象需要一个对象的构造函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用标准 MVC Core 依赖注入来解析未注册的类型

如何解决 ASP.NET Core 中的依赖问题

.NET Core WebAPI 依赖注入解析 null

ASP.NET Core学习——6

ASP.NET Core学习——6

ASP.NET Core 依赖注入基本用法