在我的应用程序中,我有一个服务,它在它的构造函数中进行一些设置
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>();