Как вызвать родительского докладчика в шаблоне MVP пользовательского элемента управления докладчика - PullRequest
0 голосов
/ 20 июня 2019

Я использую шаблон 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 и наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...