У меня есть страница ASP.NET Web Forms, которую презентатору необходимо заполнить элементами управления. Это взаимодействие несколько чувствительно к жизненному циклу страницы, и мне было интересно, есть ли у него трюк, о котором я не знаю.Разделение представления, презентации и веб-форм ASP.NET
Я хочу быть практичным во всем, но не подвергать риску испытания.
В настоящее время у меня есть это:
public interface ISomeContract
{
void InstantiateIn(System.Web.UI.Control container);
}
Этот договор имеет зависимость от System.Web.UI.Control и мне нужно, чтобы быть в состоянии сделать вещи с веб-форм ASP.NET модель программирования. Но ни представление, ни ведущий могут не знать об элементах управления ASP.NET.
Как мне обойти это? Как я могу работать с моделью программирования ASP.NET Web Forms в своих конкретных представлениях, не принимая зависимость System.Web.UI.Control в моих контрактных сборках?
Чтобы немного прояснить ситуацию, этот тип интерфейса связан с составом пользовательского интерфейса (с использованием MEF). Это известно в рамках структуры, но она действительно называется только изнутри конкретного вида. Конкретное представление по-прежнему остается единственным, что известно об ASP.NET Web Forms. Однако эти публичные методы, которые говорят InstantiateIn(System.Web.UI.Control)
, существуют в моих контрактных сборках, и это подразумевает зависимость от веб-форм ASP.NET.
Я думал о каком-то двойном диспетчерском механизме или даже шаблоне посетителя, чтобы попытаться обойти это, но я еще не знаю, в каком направлении я хочу идти, и мне действительно хотелось бы внести свой вклад в дело.
Почему просмотр и презентатор не могут быть осведомлены об элементах управления ASP.NET? –
@ Испытание Кирка? неужели это будет трудно (штопать почти невозможно), чтобы издеваться над этими вещами? –
Не могли бы вы ответить на http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-net? – Lijo