C# 无法解析System.Collections.Generic.IAsyncEnumerable类型的服务
我有一个例外: System.InvalidOperationException:'无法解析类型的服务 'System.Collections.Generic.IAsyncEnumerable'1[MyProject.Interfaces.IFooReader]' 试图激活时 “MyProject.Services.FooService.” 尝试使用C# 无法解析System.Collections.Generic.IAsyncEnumerable类型的服务,c#,dependency-injection,.net-5,iasyncenumerable,C#,Dependency Injection,.net 5,Iasyncenumerable,我有一个例外: System.InvalidOperationException:'无法解析类型的服务 'System.Collections.Generic.IAsyncEnumerable'1[MyProject.Interfaces.IFooReader]' 试图激活时 “MyProject.Services.FooService.” 尝试使用var fooService=provider.GetRequiredService()解析IFooService 以下是FooService类:
var fooService=provider.GetRequiredService()解析IFooService
代码>
以下是FooService
类:
public class FooService : IFooService
{
private readonly IAsyncEnumerable<IFooReader> _foosReaders;
public PriceService(IAsyncEnumerable<IFooReader> foosReaders)
{
this._foosReaders = foosReaders;
}
}
公共类FooService:IFooService
{
私有只读iSyncEnumerable\u foosReaders;
公共价格服务(iSyncEnumerable foosReaders)
{
这._foosReaders=foosReaders;
}
}
以下是DI容器:
services.AddScoped<IFooReader, FooServiceA>();
services.AddScoped<IFooReader, FooServiceB>();
services.AddScoped<IFooReader, FooServiceC>();
services.AddScoped<IFooService, FooService>(); //assuming stateless
services.addScope();
services.addScope();
services.addScope();
services.addScope()//假定无国籍
看起来本机.net core DI容器不支持注入IAsyncEnumerable
,有什么方法可以解决这个问题吗?为什么需要将它作为IAsyncEnumerable?我认为IEnumerable在这种情况下可以正常工作。IAsyncEnumerable
不受支持。注入一个IAsyncEnumerable
没有什么意义,因为所有IFooReader
实现在当前注册时都是同步构建的。DI组件不应该异步加载,因为您应该能够。