C# Lightinject-检测到递归依赖项

C# Lightinject-检测到递归依赖项,c#,dependency-injection,ioc-container,C#,Dependency Injection,Ioc Container,无论如何,在LightInject中检测到递归依赖性问题 我有两个相互接受的业务服务,因此我得到一个递归依赖检测错误。有人想出解决办法吗?我相信在结构图是可行的 所以我有一些类似的东西: public class RetailerService : IRetailerService { private readonly IUserService _userService; public RetailerService(IUserService userService)

无论如何,在LightInject中检测到递归依赖性问题

我有两个相互接受的业务服务,因此我得到一个递归依赖检测错误。有人想出解决办法吗?我相信在结构图是可行的

所以我有一些类似的东西:

public class RetailerService : IRetailerService
{
    private readonly IUserService _userService;

    public RetailerService(IUserService userService)
    {
        _userService = userService;
    }

每个人都需要互相打电话。例如,当我加载一个用户时,我加载零售商,这是对retailerservice的调用;当我添加零售商时,我需要验证用户,这是对userService的调用


提前谢谢。

这是一种难闻的气味,首先应该避免。但是您可以使用创建一个变通方法。

这不是IoC框架的问题,您已经解决了一个无法解决的问题。首先找到一种方法,您可以在逻辑上手动构造这两个对象,然后我们可以看到如何欺骗IoC框架来为您这样做。我也质疑这里的责任。您可能希望将二者分离为三,创建一个可以加载user+retailer或retailer+user的新服务,而这两个服务不知道另一个。StructureMap无法为您解决此问题。如果您试图手工构建对象图,您将无法获得此编译。好的,伙计们,我已经重新处理了服务,并从用户服务中删除了retailservice依赖项。
public class UserService : IUserService
{
    private readonly IRetailerService _retailerService;

    public UserService(IRetailerService retailerService)
    {
        _retailerService = retailerService;
    }