C# 分部类文件的命名约定
我正在生成我的ASP.NET MVC脚手架代码的大部分。所有生成的文件都是使用标准命名约定的分部类。例如,我的员工控制器文件名为EmployeeController.cs。如果我希望使用自定义的非生成逻辑扩展EmployeeController,我将创建第二个名为EmployeeControllerCustom.cs的部分类文件。我将自定义和生成的逻辑分为两个不同的文件,以便下次生成EmployeeController时不会覆盖自定义更改。在文件名中添加“自定义”后缀对我来说似乎是合理的,但是是否有一个更为成熟的部分类文件命名约定我应该遵循?我使用C# 分部类文件的命名约定,c#,naming-conventions,code-generation,partial-classes,C#,Naming Conventions,Code Generation,Partial Classes,我正在生成我的ASP.NET MVC脚手架代码的大部分。所有生成的文件都是使用标准命名约定的分部类。例如,我的员工控制器文件名为EmployeeController.cs。如果我希望使用自定义的非生成逻辑扩展EmployeeController,我将创建第二个名为EmployeeControllerCustom.cs的部分类文件。我将自定义和生成的逻辑分为两个不同的文件,以便下次生成EmployeeController时不会覆盖自定义更改。在文件名中添加“自定义”后缀对我来说似乎是合理的,但是是
分隔-例如EmployeeController.SomeSpecialBehaviour.cs
。我还通过“dependentUpon”或csproj中的任何内容将其链接到项目树中,以便它整齐地嵌套在文件下(在解决方案资源管理器中)。但是,您必须手动(编辑csproj)或使用加载项来完成此操作;例如:
<Compile Include="Subfolder/Program.cs" />
<Compile Include="Subfolder/Program.Foo.cs">
<DependentUpon>Program.cs</DependentUpon> <!-- Note that I do not reference the subfolder here -->
</Compile>
Program.cs
显示为:
- 子文件夹
Program.cs
Program.Foo.cs
添加到Marc Gravel中♦'s的回答是,我遇到了一种情况,即子文件夹中的文件被忽略了
DependentUpon
节点。其缺点是,在这种情况下,我的xml必须是:
<Compile Include="foo\bar.cs" />
<Compile Include="foo\bar.baz.cs">
<DependentUpon>bar.cs</DependentUpon> <!-- Note that I do not reference the subfolder here -->
</Compile>
酒吧
我希望这对某人有所帮助:)DependentUpon建议真的很酷,效果很好。谢谢你的提醒。如果我读的没错,你不能简单地使用“Custom”这样的标准后缀。你的后缀总是表达部分类文件功能的意图。还有,您使用该选项的原因是什么。与套管相对的分离?是的。除了提高可读性之外,还能提供什么?谢谢。正确-文件名表示该部分代码的意图。因此,如果我要实现一个外来接口(并将代码分开),它可能是
SomeType.ICustomTypeDescriptor.cs
。
(IMO)将两件事分开:实际类型(SomeType
)和意图ICustomTypeDescriptor
——两者都已完全区分大小写;此外,它还与类似于SomeForm.Designer.cs
-完美无缺。谢谢你的额外见解。如果我能做的不仅仅是投票,那么你的答案和马克也是正确的。@Marc Gravel:你知道有没有提供文件依赖项设置功能的VS扩展名吗?@Dyppl该扩展名也可以为我做这件事。这是因为我首先在数据库中启动了项目,当它创建模型时,它将它们放在模型图中。VS2015,如果它对任何人都有影响。