2016-09-07 15 views
-1

我有一个跨多个程序集的单个命名空间。 Resharper警告说名称空间不对应于文件位置。多个程序集中的相同命名空间是一种很好的做法?

这是不好的做法?使用与文件位置相对应的名称空间更好吗?

在我的特定情况下,我有两个组件:一个可移植类库的一些平台,然后特定的程序集为每个平台(UWP,桌面,...)共享

的命名空间是MyCompany.I18N和它致力于本地化服务。

大部分代码都在PCL中,但我需要编写一些平台特定的代码。

在UWP的情况下,我需要使用XAML函数,所以我创建了一个UWP程序集。我认为MyCompany.I18N命名空间是可以的,因为它是原来的I18N命名空间的扩展,但是Resharper认为它不是一个好的样式。

我需要移动到MyCompany.XAML.I18N命名空间吗?这对我来说似乎更困惑。在这些情况下通常的做法是什么?

回答

3

这是一个非常常见的约定,即文件的布局与代码中的命名空间相匹配。这使得东西在逻辑上由文件夹和命名空间分开。当它不匹配时,ReSharper通过警告你来使用它 - 这通常表明命名空间不正确,或者文件位于错误的地方。

如果它不适合你,不遵守约定是完全正确的。您可以通过更改Alt + 输入菜单并将其设置为“不显示”(您可以将其保存到团队共享设置并将其检入到源代码控制中并将其应用于其中)来禁用警告以解决方案为基础)。

此外,您可以禁用它为特定的文件夹。在Visual Studio中,在解决方案资源管理器中选择一个文件夹,然后右键单击并显示属性。然后将“Namespace Provider”设置更改为false。 ReSharper不会将该文件夹视为预期命名空间的一部分。在help page更多细节。

相关问题