在.NET Core中遭遇循环依赖问题"A circular dependency was detected"

发布时间:2017-3-2 3:55:50 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"在.NET Core中遭遇循环依赖问题"A circular dependency was detected" ",主要涉及到在.NET Core中遭遇循环依赖问题"A circular dependency was detected" 方面的内容,对于在.NET Core中遭遇循环依赖问题"A circular dependency was detected" 感兴趣的同学可以参考一下。

今天在将一个项目迁移至ASP.NET Core的过程中遭遇一个循环依赖问题,错误信息如下:

A circular dependency was detected for the service of type 'CNBlogs.Application.Interfaces.ITagService'

一开始以为是项目之间的引用关系引起的,在project.json中找来找去,一无所获。

后来从构造函数下手,才发现问题所在。

实现ITagService的类TagService的构造函数是这么定义的:

public class TagService : ITagService
{
    private readonly IContentTagsService _contentTagService;

    public TagService(IContentTagsService contentTagService)
    {
        _contentTagService = contentTagService;
    }
}

这是很标准的通过构造函数依赖注入的定义方式,本身并没有问题。但是我们来看看实现IContentTagsService的类ContentTagsService的构造函数定义:

public class ContentTagsService : IContentTagsService
{
    private readonly ITagService _tagService;

    public ContentTagsService(ITagService tagService)
    {
        _tagService = tagService;
    }
}

TagService实现ITagService,依赖IContentTagsService;ContentTagsService实现IContentTagsService,却又依赖ITagService。循环依赖问题就这么闪亮登场了。

上一篇:Android studio 自定义打包apk名
下一篇:Apache Commons 系列简介 之 Pool

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。