Frage

Was definierbare statische Code-Überprüfung Regel möchten Sie zu FxCop Angebot und / oder Gendarme?

Warum Sie tun möchten die Regel hinzugefügt, um zu sehen, beispiels was sind die Vorteile etc?

Wie könnte die Regel umgesetzt werden?

War es hilfreich?

Lösung

Ich persönlich würde es vorziehen, nicht mit IDisposable Implementierungen in using Aussagen zu sehen.

Also, wenn Sie hatte Code wie folgt:

var fs = new FileStream(...);

// Other code.

fs.Dispose();

Es würde Ihnen sagen, es in einer using Anweisung zu verwenden.

Der Vorteil wäre, dass es Sie auf die Fälle aufmerksam machen würden Sie vielleicht nicht bewusst, von denen Objekte, die angeordnet werden sollten, sind nicht in einer angemessenen Art und Weise angeordnet sind.

Es gibt jedoch genug Zeit, wo es eine gültige Situation NICHT IDisposable Implementierungen in einer using-Anweisung für eine Regel wie diese wird einen Schmerz sehr schnell zu erklären. Meistens ist dieser Fall eine IDisposable Implementierung als Parameter ein Verfahren unter.

Was ich tue, nicht Mittelwert Verwendungen von Klassen, in denen die Details der Implementierung die Notwendigkeit für den Aufruf Dispose entfernen (z MemoryStream oder DataContext); diejenigen implementieren IDisposable und sollte immer haben Dispose auf sie berufen, und zwar unabhängig von der Implementierung Details, wie es ist immer besser, Code gegen den Vertrag ausgesetzt.

Andere Tipps

Ich möchte sehr schnell meine eigenen Regeln zu definieren und umzusetzen. Ich habe versucht, dieses eine Mal für FxCop, aber ich fand die API nicht ganz klar zu sein - und es war nicht zu viel Dokumentation um. Ich benutzte FxCop 1,36, vielleicht Dinge geändert ...

So würde Ich mag FxCop sehen, eine klare und mit einfach zu bedienende Schnittstelle ... das wäre toll:)

Die Regeln, die ich versuchte, waren zu implementieren:

  • DocumentInternalMethods
  • DocumentInternalTypes
  • ...

Im Grunde wollte ich xml-Kommentare zu nicht-öffentlichen Mitgliedern erzwingen.

Ich würde wirklich wie die binäre Analyse klug genug sein, um die Möglichkeit einer Schnittstelle zu erkennen.

Wenn es von Annäherung an die definierten Typen und ihre Mitglieder bestimmen könnte, wenn es commons, die in eine Schnittstelle hochgerechnet werden.

Natürlich ist dies sollte Sie nicht mehr als eine Warnung, da es manchmal explizit whished ist nicht eine Schnittstelle verwendet werden.

Nach thinkin über diese, auch ich möchte die binäre Analyse, um zu sehen klug genug zu sein, um zu überprüfen mögliche Herabstufung von Zugriffsmodifikatoren.

Es sollte nicht zu schwer sein, um zu bestimmen, ob eine Klasse, Eigenschaft oder Methode könnte eingeschränkt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top