尝试获取接口时的 DI 问题

时间:2021-07-26 15:50:55

标签: c# asp.net-core dependency-injection

所以我遇到了一些我不明白的 DI 问题。我看到了一些类似的帖子,我尝试了他们推荐的内容,但我没有任何运气。这是我得到的错误

<块引用>

“无法解析 'IRetrieveService' 类型的服务,而 试图激活“更新服务”

这是我如何设置更新服务

private readonly IAsyncPolicy<SaveDocumentsResult> _processDocumentUpdatesPolicy;
private readonly IRetrieveService _retrieveService;
private readonly ISaveService _saveService;

public UpdateService(
    IAsyncPolicy<SaveDocumentsResult> processDocumentUpdatesPolicy,
    IRetrieveService retrieveService,
    ISaveService saveService)
{
    _processDocumentUpdatesPolicy = processDocumentUpdatesPolicy ?? throw new ArgumentNullException(nameof(processDocumentUpdatesPolicy));
    _retrieveService = retrieveService ?? throw new ArgumentNullException(nameof(retrieveService));
    _saveService = saveService ?? throw new ArgumentNullException(nameof(saveService));
}

最后,我在添加服务的地方有了这个

Services.AddScoped<IRetrieveService, RetrieveService>();
Services.AddScoped<ISaveService, SaveService>();

1 个答案:

答案 0 :(得分:0)

您的代码中没有任何内容表明有关 IReveverService 和实现的任何问题。我认为您的服务设置肯定有问题。

试试看下面的链接。它描述了不同的用法。

AddTransient, AddScoped and AddSingleton Services Differences