Пространство имен не соответствует структуре папок (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

Чтобы отключить все правила в стиле кода, задайте серьезность для категории Stylenone в файле конфигурации.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

См. также