Namespace does not match folder structure (IDE0130)
Property | Value |
---|---|
Rule ID | IDE0130 |
Title | Namespace does not match folder structure |
Category | Style |
Subcategory | Language rules (expression-level preferences) |
Applicable languages | C# and Visual Basic |
Options | dotnet_style_namespace_match_folder |
Overview
This style rule uses the folder structure of the project to enforce namespace naming requirements.
Options
Options specify the behavior that you want the rule to enforce. For information about configuring options, see Option format.
dotnet_style_namespace_match_folder
Property | Value | Description |
---|---|---|
Option name | dotnet_style_namespace_match_folder | |
Option values | true |
Prefer namespace naming to match folder structure. |
false |
Disables the rule. | |
Default option value | true |
Note
The dotnet_style_namespace_match_folder
option depends on knowing the current project and root namespace properties. This information is provided by Visual Studio but is not available for command-line builds, such as dotnet build
. For command-line builds to work, you must add the following properties to your project file:
<ItemGroup>
<CompilerVisibleProperty Include="RootNamespace" />
<CompilerVisibleProperty Include="ProjectDir" />
</ItemGroup>
Example
Assume that the following code snippets are from a file named Data/Example.cs
or Data/Example.vb
, where Data
represents the folder structure from the project file. The folder structure naming is added to the root namespace, which in this example is 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
Suppress a warning
If you want to suppress only a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.
#pragma warning disable IDE0130
// The code that's violating the rule is on this line.
#pragma warning restore IDE0130
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.IDE0130.severity = none
To disable all of the code-style rules, set the severity for the category Style
to none
in the configuration file.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
For more information, see How to suppress code analysis warnings.