0

我有这个例外:

System.InvalidOperationException:“尝试激活“MyProject.Services.FooService”时,无法解析“System.Collections.Generic.IAsyncEnumerable`1[MyProject.Interfaces.IFooReader]”类型的服务。

在尝试解决IFooServicevar fooService = provider.GetRequiredService<IFooService>();

这是FooService课程:

public class FooService : IFooService
{
    private readonly IAsyncEnumerable<IFooReader> _foosReaders;

    public PriceService(IAsyncEnumerable<IFooReader> foosReaders)
    {
        this._foosReaders = foosReaders;            
    }
}

这是 DI 容器:

services.AddScoped<IFooReader, FooServiceA>(); 
services.AddScoped<IFooReader, FooServiceB>(); 
services.AddScoped<IFooReader, FooServiceC>(); 

services.AddScoped<IFooService, FooService>(); //assuming stateless

看起来本机 .net-core DI 容器不支持注入IAsyncEnumerable,有什么办法解决这个问题?

4

1 回答 1

1

使用IEnumerable而不是IAsncEnumerable应该可以解决此问题。

 public class FooService : IFooService

{
    private readonly IEnumerable<IFooReader> _foosReaders;

    public PriceService(IEnumerable<IFooReader> foosReaders)
    {
        this._foosReaders = foosReaders;            
    }
}
于 2021-09-02T08:52:24.360 回答