Sto usando VS2008 e vorrei creare un avviso/errore di compilazione in base agli attributi personalizzati su una proprietà (se possibile).Generazione di un avviso di compilazione personalizzato C#
ci sono due casi che mi interessano attualmente:
[MyAttribute (typeof(MyClass)]
Dove MyClass deve implementare un'interfaccia. Attualmente Affermo questo nel costruttore dell'attributo, ma questo non lo rende facile da rintracciare, a causa della natura della traccia dello stack:
public MyAttribute (Type MyClassType)
{
System.Diagnostics.Debug.Assert(typeof(MyInterface).IsAssignableFrom(MyClassType),
"Editor must implement interface: " + typeof(MyInterface).Name);
}
Il secondo caso che mi interessa è dove ho un tipo definito in un attributo, se quel tipo implementa un'interfaccia, quindi dovrebbe essere visualizzato un avviso se non è presente un altro attributo.
I.E. if (MyClass.Implements (SomeInterface) & &! exists (SomeAttibute)) {} Generare Attenzione
[MyAttribute(typeof(MyClass)]
// Comment next line to generate warning
[Foo ("Bar")]
Grazie!
Domanda interessante, io sono curioso di sapere se tale cosa è possibile. +1 –
Interessato pure. –
http://stackoverflow.com/questions/154109/custom-compiler-warnings –