我是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并将其设置得非常严格,以便在编写代码时学习最佳实践。我应该如何构建这些代码子模块,以便它对我的库的用户有逻辑意义?
答案 0 :(得分:1)
新的抱怨是Style Cop希望命名空间中的文件位于与命名空间匹配的文件夹结构中。基本上它需要项目的根命名空间,并假定该命名空间中的所有文件都位于项目的根目录中。根目录下的任何名称空间都应该有一个匹配的文件夹,其中包含该名称空间中的类的文件存在。