Namespace entspricht nicht der Ordnerstruktur (IDE0130)
Eigenschaft | Wert |
---|---|
Regel-ID | IDE0130 |
Titel | Namespace entspricht nicht der Ordnerstruktur |
Kategorie | Stil |
Unterkategorie | Sprachregeln (Einstellungen auf Ausdrucksebene) |
Gültige Sprachen | C# und Visual Basic |
Optionen | dotnet_style_namespace_match_folder |
Übersicht
Diese Formatregel verwendet die Ordnerstruktur des Projekts, um Anforderungen an die Benennung von Namespaces durchzusetzen.
Optionen
Optionen geben das Verhalten an, das die Regel erzwingen soll. Informationen zum Konfigurieren von Optionen finden Sie unter Optionsformat.
dotnet_style_namespace_match_folder
Eigenschaft | Wert | Beschreibung |
---|---|---|
Name der Option | dotnet_style_namespace_match_folder | |
Optionswerte | true |
Benennung von Namespaces soll Ordnerstruktur entsprechen. |
false |
Die Regel wird deaktiviert. | |
Standardoptionswert | true |
Hinweis
Die Option dotnet_style_namespace_match_folder
muss die aktuellen Eigenschaften von Projekt- und Stammnamespace kennen. Diese Informationen werden von Visual Studio bereitgestellt, stehen jedoch für Befehlszeilenbuilds wie dotnet build
nicht zur Verfügung. Damit Befehlszeilenbuilds funktionieren, müssen Sie der Projektdatei die folgenden Eigenschaften hinzufügen:
<ItemGroup>
<CompilerVisibleProperty Include="RootNamespace" />
<CompilerVisibleProperty Include="ProjectDir" />
</ItemGroup>
Beispiel
Annahme: Die folgenden Codeschnipsel stammen aus einer Datei mit dem Namen Data/Example.cs
oder Data/Example.vb
, wobei Data
die Ordnerstruktur aus der Projektdatei darstellt. Die Ordnerstrukturbenennung wird dem Stammnamespace hinzugefügt, der in diesem Beispiel Root
ist.
// Code with violations
namespace Root.BadExample
{
class Example
{
public void M()
{
}
}
}
// Fixed code
namespace Root.Data
{
class Example
{
public void M()
{
}
}
}
' Code with violations
Namespace Root.BadExample
Class Example
Public Sub M()
End Sub
End Class
End Namespace
' Fixed code
Namespace Root.Data
Class Example
Public Sub M()
End Sub
End Class
End Namespace
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable IDE0130
// The code that's violating the rule is on this line.
#pragma warning restore IDE0130
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.IDE0130.severity = none
Um alle Regeln im Code-Stil zu deaktivieren, setzen Sie den Schweregrad für die Kategorie in der KonfigurationsdateiStyle
auf none
.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.