asp.net – ‘检测到Autofac循环组件依赖性’错误
发布时间:2020-12-15 23:59:24 所属栏目:asp.Net 来源:网络整理
导读:我是IoC的新手,在我当前的项目中使用Autofac. 我有以下两个班级: public class UserService : IUserService{ private readonly IUserRepository _repo; private readonly IMailService _mailService; public UserService(IUserRepository repo,IMailService
我是IoC的新手,在我当前的项目中使用Autofac.
我有以下两个班级: public class UserService : IUserService { private readonly IUserRepository _repo; private readonly IMailService _mailService; public UserService(IUserRepository repo,IMailService mailService) { _repo = repo; _mailService = mailService; } } public class MailService : IMailService { private readonly IMailRepository _repo; private readonly IUserService _userService; public MailService(IMailRepository repo,IUserService userService) { _repo = repo; _userService = userService; } } 最初,我的UserService类不需要MailService类的实例,但是现在它确实如此,并且自从将这个引入UserService构造函数以来已经出现了这个循环依赖性错误,并且作为一个新手,我不知道如何解决这个问题 这是我的课程目前在Autofac中注册的方式: var builder = new ContainerBuilder(); // controllers builder.RegisterControllers(Assembly.GetAssembly(typeof(UsersController))); // register other classes builder.RegisterType<UserRepository>().As<IUserRepository>(); builder.RegisterType<MailRepository>().As<IMailRepository>(); builder.RegisterType<UserService>().As<IUserService>(); builder.RegisterType<MailService>().As<IMailService>(); 解决方法
如果UserService需要IMailService并且MailService需要IUserService,则您具有依赖循环.我看到了几个选项:
>您的UserService是否需要立即使用IMailService?当你需要发送消息时,你可以通过吗?>可以按需查询解析器 – 也就是说,不要在构造函数中将IUserService传递给MailService,而是在需要时编写MailService来解析IUserService吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-web-api – 在WebApi和MVC项目之间共享SignalR集线
- ASP.net MVC路由:使用QueryStrings是一种好的风格吗?
- asp.net-mvc – F#Global.asax – 语言不受支持?
- ASP.NET Web.config中的相对路径
- asp.net – 如何将Sitecore Droptree源设置为项目本身
- asp.net-mvc – 如何在ApiController构造之后但在执行动作之
- asp.net – 如何检查IIS是否在32位或64位模式
- asp.net-web-api – Web API嵌套路由无法按预期工作
- asp.net – 在后面的代码中无法识别嵌套的Repeater
- asp.net-mvc-3 – MVC3 MapRoute,带斜杠的参数
推荐文章
站长推荐
- asp.net – 总是显示FooterTemplate,甚至没有数据
- asp.net-mvc – ASP.NET MVC WebSite中的ERR_EMP
- ASP.NET Core中的Startup.cs中的asp.net-core –
- asp.net – “读取XML数据时已超出”最大字符串内
- 过期输出缓存ASP.Net MVC
- 在没有ViewState ASP.Net的情况下获取当前页面的
- asp.net – 为什么压缩ScriptResource.axd,即使禁
- asp.net – 在web.config下为url重写的多个外部文
- asp.net-mvc – 带参数的MVC redirecttoaction与
- asp.net-mvc – DesignPatterns:哪个最适合用于
热点阅读