Отметьте свойства элемента управления в соответствии с требованиями в режиме конструктора - PullRequest
2 голосов
/ 25 апреля 2009

Я бы хотел заставить потребителя элемента управления присвоить свойству значение при размещении элемента управления на странице.

В VisualStudio при создании тега imageбез атрибутов SRC или ALT в пользовательском элементе управления подчеркивается, что SRC и ALT являются обязательными атрибутами. Я предполагаю, что это просто специальная обработка тега редактором, но есть ли способ определить подобное поведение для элементов управления?

Если элемент управления имеет свойство, определенное следующим образом:

public object AProperty
{
    get 
    {
        if (ViewState["AProperty"] == null)
        {
            throw new Exception("AProperty is a required property of this control");
        }
        return ViewState["AProperty"];
    }
    set { ViewState["AProperty"] = value; }
}

Есть ли способ использовать пользовательский атрибут или что-то еще, что помечается в конструкторе?

Ответы [ 2 ]

5 голосов
/ 25 апреля 2009

Вы можете использовать атрибут Microsoft.Build.Framework.Required. Это потребует установки значения во время сборки, иначе сборка не удастся с сообщением о том, что у свойства нет значения.

Я не верю, что есть атрибут, указывающий, что в элемент управления сервером должен быть включен определенный тег (или, по крайней мере, я не вижу такого атрибута в классе System.Web.UI.HtmlControl.Image) , Я считаю, что несколько подчеркиваний являются частью HTML-проверки IDE.

Вы всегда можете создать собственный атрибут, который выдает предупреждение, если свойство отсутствует

0 голосов
/ 01 октября 2013

Хотя Microsoft.Build.Framework.Required, вероятно, является лучшим ответом здесь, для тех, кто сталкивается с этим и не может использовать .NET 4.0, вы также можете использовать этот метод:

http://forums.asp.net/t/1238319.aspx

...