2009-09-25 174 views
74

我正在生成大量的ASP.NET MVC腳手架代碼。所有生成的文件都是使用標準命名約定的部分類。例如,我的員工控制器文件名爲EmployeeController.cs。如果我想用定製的非生成邏輯擴展EmployeeController,我創建了一個名爲EmployeeControllerCustom.cs的第二個部分類文件。我將自定義和生成的邏輯分成兩個不同的文件,所以下次我生成EmployeeController時,我的自定義更改不會被覆蓋。將「自定義」後綴添加到文件名似乎對我來說很合理,但是我應該遵循一個更加成熟的部分類文件命名約定嗎?部分類文件的命名約定

回答

121

我使用.分隔 - 例如EmployeeController.SomeSpecialBehaviour.cs。我還通過「依賴關係」或任何它在csproj中將它鏈接到項目樹中,以便它整齊地嵌套在文件(在解決方案資源管理器中)下。不過你必須手動(編輯csproj)或者使用外掛程序來做到這一點;例如:

<Compile Include="Program.cs" /> 
<Compile Include="Program.Foo.cs"> 
    <DependentUpon>Program.cs</DependentUpon> 
</Compile> 

顯示爲:

  • Program.cs
    • Program.Foo.cs
+0

沒有意識到DependentUpon上的任何文件工作... – thecoop 2009-09-25 17:38:21

+2

的DependentUpon建議非常酷,效果很好。感謝您的注意。如果我閱讀正確,則不要簡單地使用「自定義」之類的標準後綴。你的後綴總是表達部分類文件功能的意圖。另外,你有沒有理由使用這個。分離與套管相反?是的。提供的不僅僅是改進的可讀性?謝謝。 – 2009-09-25 18:30:42

+7

正確 - 文件名稱表示*部分*中代碼的意圖。所以如果我正在實現一個奇特的接口(並保持代碼分離),它可能是'SomeType.ICustomTypeDescriptor.cs'。 IMO(IMO)分離了兩件事:實際類型('SomeType')和意圖ICustomTypeDescriptor - 都已經完全套用;此外,它與'SomeForm.Designer.cs';# – 2009-09-25 19:02:12

9

爲了增加馬克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> 

我希望這可以幫助別人:)

+0

幫助了我,謝謝。 – heltonbiker 2015-08-04 12:46:43