J'utilise VS2008 et je souhaite créer un avertissement/une erreur de compilation en fonction des attributs personnalisés d'une propriété (si cela est possible).Génération d'un avertissement de compilation personnalisé C#
Il y a deux cas qui me intéressent actuellement:
[MyAttribute (typeof(MyClass)]
Où MyClass doit implémenter une interface. Actuellement, j'affirme ceci dans le constructeur de l'attribut, mais cela ne rend pas facile à trouver, en raison de la nature de la trace de la pile:
public MyAttribute (Type MyClassType)
{
System.Diagnostics.Debug.Assert(typeof(MyInterface).IsAssignableFrom(MyClassType),
"Editor must implement interface: " + typeof(MyInterface).Name);
}
Le deuxième cas qui me intéresse est où j'ai type défini dans un attribut, si ce type implémente une interface, un avertissement devrait être affiché si un autre attribut n'est pas présent.
I.E. si (MyClass.Implements (UneInterface) & &! exists (SomeAttibute)) {Générer} Avertissement
[MyAttribute(typeof(MyClass)]
// Comment next line to generate warning
[Foo ("Bar")]
Merci!
question intéressante, je suis curieux de savoir si une telle chose est possible. +1 –
Intéressé aussi. –
http://stackoverflow.com/questions/154109/custom-compiler-warnings –