O namespace não corresponde à estrutura de pastas (IDE0130)

Propriedade Valor
ID da regra IDE0130
Título O namespace não corresponde à estrutura de pastas
Categoria Estilo
Subcategoria Regras de linguagem (preferências no nível de expressão)
Linguagens aplicáveis C# e Visual Basic
Opções dotnet_style_namespace_match_folder

Visão geral

Essa regra de estilo usa a estrutura de pastas do projeto para impor os requisitos de nomenclatura de namespace.

Opções

As opções especificam o comportamento que você quer que a regra imponha. Para obter informações sobre como configurar as opções, confira Formato da opção.

dotnet_style_namespace_match_folder

Propriedade Valor Descrição
Nome da opção dotnet_style_namespace_match_folder
Valores da opção true De preferência, a nomenclatura do namespace deve corresponder à estrutura de pastas.
false Desabilita a regra.
Valor da opção padrão true

Observação

A opção dotnet_style_namespace_match_folder depende do conhecimento das propriedades atuais do projeto e do namespace raiz. Essas informações são fornecidas pelo Visual Studio, mas não estão disponíveis para builds de linha de comando, como dotnet build. Adicione as seguintes propriedades ao arquivo de projeto para que os builds de linha de comando funcionem:

<ItemGroup>
  <CompilerVisibleProperty Include="RootNamespace" />
  <CompilerVisibleProperty Include="ProjectDir" />
</ItemGroup>

Exemplo

Suponha que os seguintes snippets de código sejam de um arquivo chamado Data/Example.cs ou Data/Example.vb, em que Data represente a estrutura de pasta do arquivo do projeto. A nomenclatura da estrutura de pastas é adicionada ao namespace raiz, que neste exemplo é 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

Suprimir um aviso

Se você quiser suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite a regra.

#pragma warning disable IDE0130
// The code that's violating the rule is on this line.
#pragma warning restore IDE0130

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_diagnostic.IDE0130.severity = none

Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style como none no arquivo de configuração.

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

Para obter mais informações, confira Como suprimir avisos de análise de código.

Confira também