3

quick question for my MVP implementation:

currently I have the code below, in which both the presenter and view are resolved via the container.
Then the presenter calls View.Init to pass himself to the view.

I was wondering however if there is a way to let the container fix my circular reference (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

Frederik
  • 33
  • 2
  • What exactly do you mean by "fix my circular reference." *In other words what would you expect the fix to be; which one would lose the reference to the other?* – Jason D Nov 25 '09 at 02:44

2 Answers2

0

You could use a property setter instead of passing the reference into the constructor.

froeschli
  • 2,692
  • 2
  • 28
  • 55
-1

As long as you put both Presenter and View inside the same csproject, there shouldn't be any circular reference

Graviton
  • 81,782
  • 146
  • 424
  • 602