C #: Como usar CategoryAttribute.Appearance Propriedade
-
03-07-2019 - |
Pergunta
Eu li um pouco sobre tempo de design Atributos para Componentes . Lá encontrei um atributo chamado CategoryAttribute . Nessa página ele diz que
A classe CategoryAttribute define as seguintes categorias comuns:
E listas em seguida, até um número de categorias comuns. Um deles são, por exemplo Aparência . Eu pensei, brilhante! Então eu posso usar [Category.Appearance]
vez de [Category("Appearance")]
! Mas, aparentemente, eu não poderia? Tentei escrevê-lo, mas Intellisense não iria buscá-lo e ele não compilar. Estou faltando alguma coisa aqui? Foi talvez não este essas propriedades eram para? Se não, quais são? Se eles são, como posso usá-los?
E sim, eu tenho o using
correta para ter acesso ao CategoryAttribute
, causa [Category("Whatever")]
fazer o trabalho. Eu só estou querendo saber como eu uso os definidos categorias comuns.
Solução
Como você pode ver no MSDN é apenas uma propriedade getter, não um setter.
public static CategoryAttribute Appearance { get; }
Na verdade, aqui é o que os olhares código como o uso de refletor:
public static CategoryAttribute Appearance
{
get
{
if (appearance == null)
{
appearance = new CategoryAttribute("Appearance");
}
return appearance;
}
}
Por isso, não faz um pedaço de um monte.
O único uso que eu posso ver por isso, é algo como isto:
foreach (CategoryAttribute attrib in prop.GetCustomAttributes(typeof(CategoryAttribute), false))
{
bool result = attrib.Equals(CategoryAttribute.Appearance);
}
Basicamente, ao usar o reflexo para olhar para a classe, você pode facilmente verificar qual categoria este pertence, sem ter que fazer uma comparação de cadeia. Mas você não pode usá-lo da maneira que você está tentando, infelizmente.
Outras dicas
A propriedade estática é acessado através de CategoryAttribute.Appearance. Mas o sistema atributo não permite que você para invocar código em uma declaração de atributo e eu acho que é por isso que ele não vai compilar para você. Você provavelmente terá de se contentar com [Category ( "Aparência")].