温莎依赖

时间:2010-03-31 14:04:26

标签: .net dependency-injection castle-windsor

我有一个像这样的构造函数的类:

public UserRepository(IBlockRepository blockRepos)
{
}

再次,我有另一个类,其构造函数如下:

public BlockRepository(IUserRepository userRepo)
{
}

这会导致温莎错误:

  

Castle.MicroKernel.Handlers.HandlerException:无法创建组件'UserRepository',因为它具有要满足的依赖项。   UserRepository正在等待以下依赖项

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:9)

这里有循环依赖。鸡肉和鸡蛋问题可以这么说。这是一个与温莎无关的设计问题。打破代码中的循环,Windsor将能够很好地构建您的对象

答案 1 :(得分:1)

除了Krzysztof所说的内容之外:如果你必须依赖彼此的类,这是一个很好的指标,表明功能不应该像现在这样分成这两个类。您应该尝试将它们合并在一起,然后拆分出真正的单向依赖关系。