Je voudrais créer une règle Style Cop qui renvoie une erreur si une classe directement hérite de System.Web.UI.Page
. Je suis en mesure d'obtenir une instance de StyleCop.CSharp.Class
représentant la classe que je regarde, mais à partir de là, je suis un peu perdu. L'objet Class (StyleCop, pas System) a un attribut Declaration
qui me permettrait d'obtenir tout ce qui figure dans la déclaration ... qui inclut le nom de la classe héritée. Mais cela ne garantit pas nécessairement l'unicité.Comment puis-je créer une règle Style Cop personnalisée avec un contrôle d'héritage strict?
Détection de c'est assez facile:
public class Foobar : System.Web.UI.Page {}
Mais une circonstance comme cela devient méchant ...
using Page = System.Web.UI.Page;
public class Foobar : Page {}
Surtout quand vous avez autres cours avec des déclarations comme celle-ci
using Page = Company.Some.Thing.Page;
public class Foobar : Page {}
Comment puis-je créer ar ule avec une vérification de type stricte qui ne soit pas déclenchée par des classes portant le même nom dans des espaces de noms différents?