【问题标题】:Same namespace in multiple assemblies is a good practice?多个程序集中的相同命名空间是一个好习惯吗?
【发布时间】:2016-09-07 09:09:56
【问题描述】:

我有一个跨多个程序集分布的命名空间。 Resharper 警告命名空间与文件位置不对应。

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

在我的具体情况下,我有两个程序集:一个由某些平台共享的可移植类库,然后是每个平台(UWP、桌面等)的特定程序集

命名空间是 MyCompany.I18N,专门用于本地化服务。

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

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

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

【问题讨论】:

    标签: c# resharper


    【解决方案1】:

    文件布局与代码中的命名空间相匹配是一个非常常见的约定。这使事物在逻辑上被文件夹和命名空间分开。 ReSharper 通过在不匹配时警告您来利用这一点 - 这通常表明命名空间不正确,或者文件位于错误的位置。

    如果它不适合你,不遵循约定是完全可以的。您可以通过在 Alt+Enter 菜单中更改检查严重性并将其设置为“不显示”来禁用警告(您甚至可以将其保存到团队共享设置并将其签入源代码管理,并在解决方案的基础上应用它)。

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

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      相关资源
      最近更新 更多