Поделиться через


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

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

См. также