2017-10-17 10 views
1

Gibt es eine Möglichkeit, eine Compiler-Warnung zu erzwingen, wenn versucht wird, einen Namespace zu importieren?Verhindern, dass ein Namespace importiert wird

Zum Beispiel kann das Projekt einen Verweis auf benötigt System.Data aber wir möchten eine Klasse oder ein Modul in dem Projekt verhindern, dass Importieren System.Data.OleDb und stattdessen empfehlen, um einen benutzerdefinierten Datenzugriff Schalen Bibliothek.

Meine Vermutung ist, es möglich sein könnte, ein benutzerdefiniertes Compiler Tool wie Roslyn verwenden, aber es scheint wie etwas, das in Visual Studio

+0

Sie können einen Roslyn Analyzer herstellen. – SLaks

+0

Danke. Ich sah einige Blogposts über Roslyn, die eine Chance haben würden, es zu benutzen, aber momentan keine Option. Gut zu wissen, dass es tun kann, was ich brauche. – mfreedm52

Antwort

2

ReSharper ermöglichen die Einrichtung von benutzerdefinierten Regeln und Validierung machbar sein sollte. Unter Options->Code Inspection->Custom Patterns können Sie ein benutzerdefiniertes Validierungsmuster erstellen.

Wählen Sie Add pattern und verwenden Sie den verbotenen Namespace als Suchmuster (z. B. System.Data.OleDb), und geben Sie Ihren Ersatz in das Ersatzmuster ein (z. B. Custom.Optimized.OleDb). Sie können dann den Schweregrad festlegen und ReSharper schlägt die Änderung vor.

Offensichtlich funktioniert dies nur, wenn Sie und Ihr Team ReSharper verwenden. (Wenn Sie nicht wirklich sollte)

Update: Antwort auf die Frage in den Kommentaren: Wissen Sie, wie ReSharper die Regeln über ein Entwicklungsteam

Resharper verwendet 3 Ebenen der Einstellungen verwaltet:

  1. Persönliche Einstellungen: Diese Einstellungen sind an Ihr Benutzerkonto gebunden. diese Einstellungen gelten für alle Lösungen, während sich mit Ihrem Benutzerkonto (Windows-Benutzerkonto) arbeiten
  2. Lösungseinstellungen: Diese Einstellungen lokal gespeichert und werden an eine bestimmte Lösung
  3. -Team geteilt angewendet: Diese Einstellungen auf einem angewendet werden Lösung, werden jedoch in einer Konfigurationsdatei gespeichert, die Sie einchecken und für Ihr gesamtes Team verfügbar machen.

Mit den Einstellungen Ebene Team freigegeben Sie können eine gemeinsame Konfigurationsdatei mit dem gesamten Team teilen.

Zusätzlich bietet Resharper ein kostenloses Befehlszeilentool, das Sie auf Ihrem Build-Server integrieren können, um diese Regeln im automatischen Build zu erzwingen.

+0

Das ist gut zu wissen, dass Resharper dies auch tun kann. Wissen Sie, wie Resharper die Regeln in einem Entwicklungsteam verwaltet? Ich dachte immer, es wäre eher ein Werkzeug, um die Arbeit einzeln zu überprüfen, keine Warnungen/Fehler zu erzwingen. – mfreedm52

+0

@ mfreedm52 Ich habe die Antwort aktualisiert, um Ihre Frage einzubeziehen. – Iqon

Verwandte Themen