C #: Как использовать свойство CategoryAttribute.Appearance
-
03-07-2019 - |
Вопрос
Я немного прочитал о Атрибутах времени разработки для компонентов . Там я нашел атрибут CategoryAttribute . На этой странице написано, что
Класс CategoryAttribute определяет следующие общие категории:
А затем перечисляет ряд общих категорий. Одним из них, например, является внешний вид . Я думал, блестящий! Тогда я могу использовать [Category.Appearance]
вместо [Category (" Внешний вид ")]
! Но, видимо, я не мог? Пытался написать, но Intellisense не поднял бы его и не скомпилировал. Я что-то здесь упускаю? Может быть, не для этого были эти свойства? Если нет, то для чего они? Если они есть, как я могу их использовать?
И да, у меня действительно есть , использующий
для доступа к CategoryAttribute
, причина [Category (" независимо от того, что) ")]
Работай. Мне просто интересно, как я использую эти определенные общие категории.
Решение
Как вы можете видеть в MSDN, это только свойство getter, а не setter.
public static CategoryAttribute Appearance { get; }
На самом деле, вот как выглядит код с использованием Reflector:
public static CategoryAttribute Appearance
{
get
{
if (appearance == null)
{
appearance = new CategoryAttribute("Appearance");
}
return appearance;
}
}
Так что это не очень много значит. Р>
Единственное использование, которое я вижу, это что-то вроде этого:
foreach (CategoryAttribute attrib in prop.GetCustomAttributes(typeof(CategoryAttribute), false))
{
bool result = attrib.Equals(CategoryAttribute.Appearance);
}
Как правило, при использовании отражения для просмотра класса вы можете легко проверить, к какой категории он относится, без сравнения строк. Но вы не можете использовать это так, как вы, к сожалению, пытаетесь. Р>
Другие советы
Статическое свойство доступно через CategoryAttribute.Appearance. Но система атрибутов не позволяет вам вызывать код в объявлении атрибута, и я думаю, именно поэтому он не будет компилироваться для вас. Вам, вероятно, придется согласиться на [Категория (" Внешний вид ")].