Я не уверен, что это то, о чем вы спрашиваете, но я предполагаю, что вы пытаетесь сохранить свой взгляд изолированным от вашей модели. Если это действительно то, что вы пытаетесь сделать, я думаю, что вы используете слишком сложный подход. Представление - просто средство представления и обратной связи. Ему действительно не нужно ничего знать о моделях, он может быть спроектирован так, чтобы использовать простые данные в какой-то сумке свойств. Это создает более чистое разделение, однако, это часто делает рендеринг данных и поддержание представления намного сложнее.
Первый вопрос, который я хотел бы задать, ДЕЙСТВИТЕЛЬНО ли стоит того, чтобы тратить столько усилий на то, чтобы ваш взгляд был полностью изолирован от вашей модели? Что вы действительно получаете, имея абсолютное разделение?
Если вам действительно нужно разделение, убедитесь, что вы понимаете роли представления и докладчика. Взгляд тупой ... он ничего не знает и ничего не делает. Он представляет информацию и формы. Браузер выдает команды, запрошенные пользователем. Презентатор обрабатывает команды и направляет данные в его представление. Понятие «ведущий, спрашивающий мнение», как правило, неверно. Докладчик должен обрабатывать команду (запрос http) напрямую, поэтому он должен знать все подробности о конкретной команде. Когда приходит время визуализации представления, докладчик должен предоставлять любые данные представлению в любой форме, в которой оно требуется. Если вы не хотите, чтобы ваше представление знало о вашей объектной модели, либо создайте свойства в представлении. сам, чтобы содержать данные, или создать специфичную для представления модель, которая инкапсулирует требуемые данные.
EDIT:
Я только что прочитал ваше обновление. Я думаю, что теперь я понимаю вашу проблему немного лучше. Прежде всего, прежде чем я пойду дальше, вам нужно немного реорганизовать обязанности. В настоящее время у вас это так, что ваше мнение отвечает за обработку ввода. Это немного искажает цель и концепцию «взгляда». Как в MVP, так и в MVC представление должно быть настолько «глупым», насколько это возможно, и на самом деле не должно отвечать за обработку чего-либо ... команды, действия, ввод и т. Д. Должны находиться в ведении контроллера или докладчика.
Видя, что ваше представление на самом деле является консольным приложением, а не приложением веб-форм (что и было моим первоначальным предположением), я думаю, что MVC может действительно лучше соответствовать вашим потребностям. MVP - это хорошее решение для устранения недостатков ASP.NET WebForms, но оно не так эффективно и не помогает в решении отдельных проблем, как MVC. Я хотел бы изучить реализацию шаблона MVC, который изначально был разработан для приложений консольного типа. Контроллер становится центральным обработчиком ввода, который затем выдает команды для обработчиков команд и вашей модели. Тогда представление будет чистым и верным для формирования ... только отображение информации и ничего больше.
Если есть какая-то причина, по которой вы не можете использовать подход MVC, который, на мой взгляд, был бы идеальным, и должен использовать MVP, я могу предложить больше советов о том, как вы можете исправить текущую реализацию. Однако я настоятельно рекомендую изучить использование MVC, поскольку эти шаблоны изначально были разработаны для решения той самой проблемы, которую вы пытаетесь решить ... в консольных приложениях.