我有一个分布在多个程序集中的命名空间。 Resharper警告命名空间与文件位置不对应。
这是一种不好的做法吗?使用与文件位置对应的命名空间是否更好?
在我的具体情况中,我有两个程序集:一些平台共享的可移植类库,然后是每个平台的特定程序集(UWP,桌面,...)
命名空间是MyCompany.I18N,专门用于本地化服务。
大多数代码都在PCL中,但我需要编写一些特定于平台的代码。
在UWP的情况下,我需要使用XAML函数,所以我创建了一个UWP程序集。我认为MyCompany.I18N命名空间是可以的,因为它是原始I18N命名空间的扩展,但Resharper认为它不是一个好的风格。
我是否需要转到MyCompany.XAML.I18N命名空间?这对我来说似乎更令人困惑。在这些情况下通常的做法是什么?
答案 0 :(得分:3)
这是一个非常常见的约定,即文件的布局与代码中的命名空间相匹配。这可以使文件夹和命名空间在逻辑上分开。 ReSharper在没有匹配时通过警告来使用它 - 它通常表明命名空间不正确,或者文件位置错误。
如果它不适合你,那么完全没有遵循惯例。您可以通过在 Alt + Enter 菜单中更改检查严重性并将其设置为"不显示"来禁用警告。 (您甚至可以将其保存到Team Shared设置并将其检入源代码管理中,并根据解决方案将其应用于解决方案)。
此外,您可以针对特定文件夹禁用它。在Visual Studio中,在解决方案资源管理器中选择一个文件夹,然后右键单击并显示“属性然后更改"命名空间提供程序"设置为false
。 ReSharper不会将该文件夹视为预期命名空间的一部分。 help page。