Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET CORE 3.1中添加服务后启动项目时出错,该错误仅在添加服务时出现_C#_.net_Asp.net Core_Asp.net Core 3.1 - Fatal编程技术网

C# 在ASP.NET CORE 3.1中添加服务后启动项目时出错,该错误仅在添加服务时出现

C# 在ASP.NET CORE 3.1中添加服务后启动项目时出错,该错误仅在添加服务时出现,c#,.net,asp.net-core,asp.net-core-3.1,C#,.net,Asp.net Core,Asp.net Core 3.1,我正在使用ASP.NET Core 3.1创建一个项目,并正在编写BusinessManager层以连接到数据库。它进行得很顺利,但当我为我将要添加的博客添加博客表服务时,我遇到了障碍 services.AddScoped<IBlogBusinessManager, BlogBusinessManager>(); services.addScope(); 这就是我试图添加服务的方式。但是当我开始这个项目时,这个错误出现了 AggregateException:无法构造某些服务(

我正在使用ASP.NET Core 3.1创建一个项目,并正在编写
BusinessManager
层以连接到数据库。它进行得很顺利,但当我为我将要添加的博客添加博客表服务时,我遇到了障碍

 services.AddScoped<IBlogBusinessManager, BlogBusinessManager>();
services.addScope();
这就是我试图添加服务的方式。但是当我开始这个项目时,这个错误出现了

AggregateException:无法构造某些服务(验证服务描述符“ServiceType:MyBlog.BusinessManager.Interfaces.IBlogBusinessManager生存期:作用域实现类型:MyBlog.BusinessManager.BlogBusinessManager”时出错:在尝试激活“MyBlog.BusinessManager.BlogBusinessManager”时,无法解析类型“MyBlog.service.Interfaces.IBlogService”的服务。)")

Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(IEnumerable ServiceDescriptor、IServiceProviderEngine引擎、ServiceProviderOptions)

这是错误中提到的BlogService类:

public class BlogService : IBlogService
{
    private readonly ApplicationDbContext _applicationDbContext;

    public BlogService(ApplicationDbContext applicationDbContext)
    {
        this._applicationDbContext = applicationDbContext;
    }

    public async Task<Blog> Add(Blog blog)
    {
        _applicationDbContext.Add(blog);
        await _applicationDbContext.SaveChangesAsync();
        return blog;
    }
}
公共类BlogService:IBlogService
{
私有只读应用程序上下文\u应用程序上下文;
公共博客服务(ApplicationDbContext ApplicationDbContext)
{
这是。_applicationDbContext=applicationDbContext;
}
公共异步任务添加(博客)
{
_applicationDbContext.Add(blog);
wait_applicationDbContext.SaveChangesAsync();
返回博客;
}
}
这就是我使用的界面

public interface IBlogService
{
    Task<Blog> Add(Blog blog);
}
公共接口IBlogService
{
任务添加(博客);
}

有没有解决此错误的方法?

您的类没有空的ctor。您必须设置DI,以便它知道如何实例化ApplicationDbContext。根据异常情况,IOC容器在激活BlogbusinessManager时无法解析IBlogService。您是否在服务集合中注册了IBlogService的实现?您可以显示控制器注入的IBlogService吗?您需要在
Startup.cs
中显示您的
ConfigureServices
方法。您可以发布有关
IBlogBusinessManager
BlogBusinessManager
的相关代码吗?此外,在
Startup.ConfigureServices
方法中,请检查您的代码并确保已注册
IBlog
服务,代码如下:
services.AddScoped();
。如果您在IBlogBusinessManager服务中使用
IBlogService
服务,则应在IBlogBusinessManager服务之前注册IBlogService服务:
services.AddScoped();services.AddScoped();