我正在生成大量的ASP.NET MVC脚手架代码。所有生成的文件都是使用标准命名约定的部分类。例如,我的员工控制器文件名为EmployeeController.cs。如果我希望使用自定义的非生成逻辑扩展EmployeeController,我会创建一个名为EmployeeControllerCustom.cs的第二个部分类文件。我将自定义和生成的逻辑分成两个不同的文件,因此下次生成EmployeeController时,我的自定义更改不会被覆盖。将“自定义”后缀添加到文件名对我来说似乎是合理的,但是我是否应该遵循更成熟的部分类文件命名约定?
答案 0 :(得分:136)
我使用.
分隔 - 例如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.Foo.cs
答案 1 :(得分:13)
要添加到Marc Gravell♦的答案,我遇到了子文件夹中的文件情况,并忽略了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>
我希望这有助于某人:)