Пространство имен не соответствует структуре папок (IDE0130)
Свойство | Значение |
---|---|
Идентификатор правила | IDE0130 |
Заголовок | Пространство имен не соответствует структуре папок |
Категория | Стиль |
Подкатегория | Правила языка (настройки уровня выражения) |
Применимые языки | C# и Visual Basic |
Параметры | dotnet_style_namespace_match_folder |
Общие сведения
Это правило стиля использует структуру папок проекта для применения требований к именованию пространства имен.
Варианты
Параметры определяют поведение, которое требуется применить правилом. Сведения о настройке параметров см. в разделе Формат параметров.
dotnet_style_namespace_match_folder
Свойство | Значение | Описание |
---|---|---|
Имя параметра | dotnet_style_namespace_match_folder | |
Значения параметра | true |
Предпочитать именовать пространства имен в соответствии со структурой папок. |
false |
Отключает проблемное правило. | |
Значение параметра по умолчанию | true |
Примечание
Параметр dotnet_style_namespace_match_folder
зависит от знания текущих свойств проекта и корневого пространства имен. Эти сведения предоставляются Visual Studio, но недоступны для сборок из командной строки, таких как dotnet build
. Чтобы сборки из командной строки работали, необходимо добавить следующие свойства в файл проекта:
<ItemGroup>
<CompilerVisibleProperty Include="RootNamespace" />
<CompilerVisibleProperty Include="ProjectDir" />
</ItemGroup>
Пример
Предположим, что следующие фрагменты кода взяты из файла с именем Data/Example.cs
или Data/Example.vb
, где Data
представляет структуру папок из файла проекта. Именование структуры папок добавляется в корневое пространство имен, которое в данном примере — 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
Отключение предупреждений
Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и снова включить правило.
#pragma warning disable IDE0130
// The code that's violating the rule is on this line.
#pragma warning restore IDE0130
Чтобы отключить правило для файла, папки или проекта, присвойте ей значение серьезности none
в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.IDE0130.severity = none
Чтобы отключить все правила в стиле кода, задайте серьезность для категории Style
none
в файле конфигурации.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.