Przestrzeń nazw nie jest zgodna ze strukturą folderów (IDE0130)
Właściwość | Wartość |
---|---|
Identyfikator zasady | IDE0130 |
Tytuł | Przestrzeń nazw nie jest zgodna ze strukturą folderów |
Kategoria | Styl |
Subcategory (Podkategoria) | Reguły języka (preferencje na poziomie wyrażeń) |
Odpowiednie języki | C# i Visual Basic |
Opcje | dotnet_style_namespace_match_folder |
Omówienie
Ta reguła stylu używa struktury folderów projektu do wymuszania wymagań dotyczących nazewnictwa przestrzeni nazw.
Opcje
Opcje określają zachowanie, które ma być wymuszane przez regułę. Aby uzyskać informacje na temat konfigurowania opcji, zobacz Format opcji.
dotnet_style_namespace_match_folder
Właściwość | Wartość | Opis |
---|---|---|
Nazwa opcji | dotnet_style_namespace_match_folder | |
Wartości opcji | true |
Preferuj nazewnictwo przestrzeni nazw, aby pasować do struktury folderów. |
false |
Wyłącza regułę. | |
Wartość opcji domyślnej | true |
Uwaga
Opcja dotnet_style_namespace_match_folder
zależy od znajomości bieżących właściwości projektu i głównej przestrzeni nazw. Te informacje są udostępniane przez program Visual Studio, ale nie są dostępne dla kompilacji wiersza polecenia, takich jak dotnet build
. Aby kompilacje wiersza polecenia działały, należy dodać następujące właściwości do pliku projektu:
<ItemGroup>
<CompilerVisibleProperty Include="RootNamespace" />
<CompilerVisibleProperty Include="ProjectDir" />
</ItemGroup>
Przykład
Załóżmy, że następujące fragmenty kodu pochodzą z pliku o nazwie Data/Example.cs
lub Data/Example.vb
, gdzie Data
reprezentuje strukturę folderów z pliku projektu. Nazwa struktury folderów jest dodawana do głównej przestrzeni nazw, która w tym przykładzie to Root
.
// 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
Pomijanie ostrzeżenia
Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable IDE0130
// The code that's violating the rule is on this line.
#pragma warning restore IDE0130
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.IDE0130.severity = none
Aby wyłączyć wszystkie reguły stylu kodu, ustaw ważność kategorii Style
na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.