C #: come utilizzare la proprietà CategoryAttribute.Appearance
-
03-07-2019 - |
Domanda
Ho letto un po 'di Design-Time Attributes for Components . Lì ho trovato un attributo chiamato CategoryAttribute . In quella pagina si dice che
La classe CategoryAttribute definisce le seguenti categorie comuni:
E quindi elenca un numero di categorie comuni. Uno di questi è ad esempio Aspetto . Ho pensato, geniale! Quindi posso usare [Category.Appearance]
invece di [Category (" Appearance ")]
! Ma a quanto pare non potrei? Ho provato a scriverlo, ma Intellisense non lo avrebbe raccolto e non si sarebbe compilato. Mi sto perdendo qualcosa qui? Non è forse questo il motivo per cui quelle proprietà erano? In caso contrario, a cosa servono? Se lo sono, come li uso?
E sì, ho il corretto usando
per avere accesso al CategoryAttribute
, causa [Categoria (" qualunque cosa ")]
lavora. Mi sto solo chiedendo come uso quelle categorie comuni definite.
Soluzione
Come puoi vedere su MSDN, è solo una proprietà getter, non un setter.
public static CategoryAttribute Appearance { get; }
In effetti, ecco come appare il codice usando Reflector:
public static CategoryAttribute Appearance
{
get
{
if (appearance == null)
{
appearance = new CategoryAttribute("Appearance");
}
return appearance;
}
}
Quindi non fa molto.
L'unico uso che posso vedere per questo è qualcosa del genere:
foreach (CategoryAttribute attrib in prop.GetCustomAttributes(typeof(CategoryAttribute), false))
{
bool result = attrib.Equals(CategoryAttribute.Appearance);
}
Fondamentalmente, quando usi la riflessione per guardare la classe, puoi facilmente controllare a quale categoria appartiene senza dover fare un confronto tra stringhe. Ma non puoi usarlo nel modo in cui stai sfortunatamente cercando.
Altri suggerimenti
È possibile accedere alla proprietà statica tramite CategoryAttribute.Appearance. Ma il sistema di attributi non ti consente di invocare il codice in una dichiarazione di attributo e credo sia per questo che non verrà compilato per te. Probabilmente dovrai accontentarti di [Categoria (" Aspetto ")].