带有StyleCop的C#中的命名空间问题

时间:2018-01-21 20:53:31

标签: c# namespaces

我是C#的新手,我正在尝试构建简单的Web API项目。我想做的其中一件事是将所有内容分组到命名空间[Company].[Project]下,然后进一步将其分成单个.[Feature]个切片。例如,我希望MyCompany.MyProject.MusicHandling为其中的一部分执行处理序列化,反序列化以及与服务的音乐部分交谈。

这似乎很自然:

namespace MyCompany.MyProject {
  namespace MusicHandling {
       // Classes
  }
}

对于我在此命名空间中想要的每个类文件。但是,当我这样做时,StyleCop会抱怨SA1403: A C# Document Can Only Contain a Single Namespace

好的,我想,没问题:

namespace MyCompany.MyProject.MusicHandling {
  // classe
}

现在它再次抱怨!这一次是Namespace does not correspond to file location, should be 'MyCompany.MyProject'。 SIGH。

我尝试使用新语言跟随linter并将其设置得非常严格,以便在编写代码时学习最佳实践。我应该如何构建这些代码子模块,以便它对我的库的用户有逻辑意义?

1 个答案:

答案 0 :(得分:1)

新的抱怨是Style Cop希望命名空间中的文件位于与命名空间匹配的文件夹结构中。基本上它需要项目的根命名空间,并假定该命名空间中的所有文件都位于项目的根目录中。根目录下的任何名称空间都应该有一个匹配的文件夹,其中包含该名称空间中的类的文件存在。