城堡IOC - 解决循环引用问题

3

我的MVP实现中有一个问题:

目前我的代码如下,同时presenter和view都通过容器解析。
然后presenter调用View.Init将自己传递给view。

我想知道是否有一种方法可以让容器解决我的循环引用(view -> presenter,presenter -> view)。

class Presenter : IPresenter {
   private View _view; 

   public Presenter(IView view, ...){
    _view = view;
    _view.Init(this)
   }
}

class View : IView {
 private IPresenter _presenter;
 public void Init(IPresenter presenter){
  _presenter = presenter;
 }
}

Kind regards

Frederik


你所说的“修复我的循环引用”具体指什么?换句话说,你期望的修复方式是什么?哪一个会失去对另一个的引用? - Jason D
2个回答

0
你可以使用属性设置器来代替将引用传递到构造函数中。

-1
只要将Presenter和View都放在同一个csproject中,就不应该出现任何循环引用。

1
这是关于运行时依赖引用的内容,而不是代码引用。 - Mauricio Scheffer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接