【问题标题】:Non-namespace folder naming convention非命名空间文件夹命名约定
【发布时间】:2013-11-01 15:08:21
【问题描述】:

我正在使用 C# .NET (Visual Studio 2010) 开发一个项目,其中包含许多生成的部分类、元数据类等。(如果你知道 Entity Framework,你明白我的意思)

我的问题与将命名空间与目录相关联的做法有关,其中每个目录表示一个子命名空间。

现在,我想将元数据类移动到一个子目录中,纯粹是出于组织目的。由于部分类必须存在于同一个命名空间中,Metadata 子目录不能再表示命名空间(否则它会破坏部分类)我将背离上述做法;没什么大不了的,但我喜欢坚持一个标准。

是否有表示给定目录纯粹是组织性的约定?

在目录名称前加上“.”(dot)或“_”(下划线)似乎很合适,前者多于后者,因为它会导致无效的命名空间名称。


@Pheonixblade9,类似这样的:

:
|
+- ProjectFolder/
|   +- App.config
|   +- Packages.config
|   +- ClassA.cs
|   +- ClassB.cs
|   +- ClassC.cs
|   +- ClassD.cs
|   +- Metadata/
|   |   +- ClassA.Metadata.cs  \
|   |   +- ClassB.Metadata.cs   \ These are the partial classes that shouldn't
|   |   +- ClassC.Metadata.cs   / be namespaced differently than their respective
|   |   +- ClassD.Metadata.cs  /  partials in the parent folder
:   :

【问题讨论】:

  • 你能提供一个目录结构的例子吗?通过图片或文字就可以了
  • 谢谢!这应该使问题更容易回答。

标签: visual-studio-2010 namespaces naming-conventions directory-structure partial-classes


【解决方案1】:
  1. 在解决方案资源管理器中选择文件夹
  2. 在属性中将 NameSpace Provider 设置为 false

【讨论】:

  • 我猜步骤 0. 是从 VS 2010 升级而来的?
  • 好建议,对于那些运行 2012 年的人来说绝对值得考虑。当/如果我设法进入 2012 年,我肯定会使用此功能,但目前我被困在 2010 年:-(
  • 我记得看到过这个选项,但是好像在 VS2022 中被拿走了或者搬走了 :(
【解决方案2】:

尽管@JohanLarsson 提供了 2012+ 的正确答案,但我选择了目录上的 . 前缀:

:
+- ClassC.cs
+- ClassD.cs
+- .Metadata/
|   +- ClassA.Metadata.cs
|   +- ClassB.Metadata.cs
:   :

这会使提供给在该文件夹中创建的类的命名空间名称无效。它更像是一个隐含的指标,而不是我更喜欢的明确规则(正如@JohanLarsson 的回答所提供的),但话又说回来,我是 2010 年的傻瓜。

我仍然乐于接受答案,并且很乐意将接受度更改为更好的东西。

【讨论】:

    猜你喜欢
    • 2011-09-08
    • 2023-03-03
    • 1970-01-01
    • 2016-03-25
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    相关资源
    最近更新 更多