我已经开始了一个新项目,并且已经使用ninject和工作单元模式逐步构建我的服务层。我遇到了一个问题,正在寻求帮助。
我有一个LicenceService
需要访问UserService
所以构造函数是
public LicenceService(IRepository<Licence> licenceRepo, IUserService userService)
但是我现在处于UserService
需要访问LicenceService
的情况,因此构造函数将是
public UserService(IRepository<User> userRepo, ILicenceService licenceService)
我猜这点你可以看到我的循环引用问题。想象一下,任何人都有任何合适的解决方案,这不是一个罕见的问题。
答案 0 :(得分:3)
第三个服务如何保存对它们的引用并在它们之间进行通信?
也就是说,第三项服务会出于特定目的调用这两种服务,而不是必须知道另一种服务。
答案 1 :(得分:3)
您可以通过工厂或代表解决此问题,但实际上这是一个设计问题。看看你是否可以将一些代码分解为第三类来删除循环依赖。