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

问题描述 投票:1回答:1

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

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,但我看不出怎么做

dependency-injection .net-core
1个回答
2
投票

.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>();
© www.soinside.com 2019 - 2024. All rights reserved.