Question

J'ai un code hérité qui a tendance à passer des objets autour d'interfaces (IFoo, par exemple), puis, à des endroits arbitraires dans le code, les jeter spontanément à des applications concrètes de ces interfaces (disons, MyConcreteFoo).

Voici un exemple stupide:

public bool IsThisFooScaredOfMonkeys(IFoo foo)
{
    if (foo is MyConcreteFoo)
    {
        return ((MyConcreteFoo)foo).BelievesMonkeysAreEvil;
    }
    return false;
}

Ce que je voudrais faire est d'écrire une requête CQL NDepend pour ramasser ces sortes de moulages et de me donner un compte par méthode, ou par type, ou quoi que ce soit vraiment. Juste quelque chose donc je sais où je peux commencer à se concentrer mes efforts sur se débarrasser de cette marque particulière de sottises, plutôt que d'envoyer mon spelunking d'équipe à travers le code sur une chasse au hasard pour moulages ...

Est-ce que quelqu'un sait s'il y a une façon de le faire? Je devine pas (il ne peut y avoir trop de gens là-bas qui ont besoin de cette fonctionnalité particulière) mais je pensais que je demande ici en premier ...: -)

Bien sûr, d'autres idées sur les façons de faire aller plus vite la distribution de chasse serait également appréciée.

Était-ce utile?

La solution

Ce serait très bien, mais NDepend est limitée à un ensemble d'entités qui ne couvre pas individuelle déclarations.

Entités NDepend

  1. Méthodes
  2. Les champs
  3. Types
  4. Namespaces
  5. Assemblées

En dépit de cette limitation NDepend est encore assez impressionnant! Peut-être est une version fonction suivante.

Patrick Smacchia pourrait être en mesure de me dire différent, donc je le contact avec cette question. Je pense à obtenir une réponse plus rapidement, il est assez au-dessus des choses.

sur un côté Note:

Si vous utilisez ReSharper 5.0 il a un

scroll top