J'utilise le proxy dynamique de LinFu pour ajouter quelques conseils à certaines classes. Le problème est que les objets mandatés ne peuvent intercepter que des méthodes virtuelles et retourneront la valeur par défaut du type de retour pour les méthodes non virtuelles.C#/Resharper 5 recherche structurelle, détecter et avertir si des méthodes publiques non virtuelles sur des classes avec certains attributs
Je peux dire si une classe est basée sur un proxy ou non basée si la classe ou l'une de ses méthodes a un attribut d'interception, par ex. [Transaction]
Est-il possible d'écrire une recherche structurelle ReSharper 5 qui avertirait si des méthodes publiques non virtuelles sont définies sur une classe avec un attribut d'interception.
E.g.
Ok
public class InterceptedClass
{
[Transaction]
public virtual void TransactionalMethod()
{
...
}
public virtual void AnotherMethod()
{
...
}
}
Bad
public class InterceptedClass
{
[Transaction]
public virtual void TransactionalMethod()
{
...
}
public void AnotherMethod() // non-virtual method will not be called by proxy
{
...
}
}
Merci beaucoup.
OT, mais NDepend est assez chouette pour des choses comme ça :) –