Я использую шаблон MVP для разработки формы Windows с использованием c #.
У меня есть докладчик MainPresenter
, который имеет ссылку InfoPresenter
, поэтому MainPresenter
может получить доступ к методам InfoPresenter
.
Теперь я хочу получить доступ к методам MainPresenter
в InfoPresenter
.Если я дам ссылку MainPresenter
на InfoPresenter
, приложение будет разорвано со следующей ошибкой.
System.StackOverflowException: было сгенерировано исключение типа System.StackOverflowException.
Ниже приведен код, который ломает:
MainPresenter
class MainPresenter : IMainPresenter
{
private IInfoPresenter _infoPresenter;
public MainPresenter(IInfoPresenter infoPresenter)
{
_infoPresenter = infoPresenter;
}
}
InfoPresenter
class InfoPresenter : IInfoPresenter
{
private IMainPresenter _mainPresenter;
public InfoPresenter(IMainPresenter mainPresenter)
{
_mainPresenter = mainPresenter;
}
}
Если я удалю ссылку MainPresenter
из второго класса (InfoPresenter
) он будет работать нормально, но затем я хочу получить доступ к некоторым его (MainPresenter
) методам в InfoPresenter
и наоборот.