У меня есть пользовательский веб-элемент управления, который вызывает некоторые методы интерфейса. Четыре различных класса используют этот интерфейс.
public interface IMultiTextProvider
{
bool Insert(string text, Guid campaignId);
IEnumerable<IMultiTextItem> GetItems(Guid campaignId);
}
В init или load я настраиваю элементы управления следующим образом (где wuc * - идентификатор элемента управления, а Provider - свойство класса, реализующего интерфейс):
private void SetMulitTextClassTypes()
{
wucMultiTextHandsetOrPlan.Provider = new HandsetOrPlanProvider();
wucMultiTextCallToAction.Provider = new CallToActionProvider();
wucMultiTextBonuses.Provider = new BonusProvider();
wucMultiTextRequirements.Provider = new RequirementProvider();
}
Вопрос в том, могу ли я сделать это декларативно в элементе управления?
Я пытаюсь использовать источник данных объекта, и свойство создается слишком поздно.
<CSControl:MultiTextUpdate ID="wucMultiTextBonuses" ControlTitle="Bonuses" runat="server" Provider="what goes here???" CampaignId="<%# CampaignId %>" />
И есть ли гораздо лучшая модель для использования при написании одного элемента управления для запуска функций в интерфейсе?
Может быть, мне нужен ProviderType вместо Provider и способ вызова нового экземпляра ...?