Конвенції про іменування файлів часткового класу


93

Я генерую основну частину коду лісів ASP.NET MVC. Усі генеровані файли - це часткові класи, які використовують стандартні правила іменування. Наприклад, мій файл контролера працівника називається EmployeeController.cs. Якщо я хочу розширити EmployeeController за допомогою негенерованої логіки, я створюю файл другого часткового класу з назвою EmployeeControllerCustom.cs. Я розділяю власну та генеровану логіку на два різні файли, тому наступного разу, коли я створюю EmployeeController, мої власні зміни не будуть перезаписані. Мені здається розумним додавання суфікса "Спеціальний" до імені файлу, але чи існує більш усталена конвенція щодо іменування файлів часткового класу, якої я мав би дотримуватися?

Відповіді:


152

Я використовую .розділення - наприклад EmployeeController.SomeSpecialBehaviour.cs. Я також прив'язую його до дерева проекту за допомогою "dependUpon" або будь-чого іншого, що знаходиться в 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

5
Пропозиція DependentUpon дійсно крута і чудово працює. Дякую, що зазначили. Якщо я читаю правильно, ви не просто використовуєте стандартний суфікс, такий як "Спеціальний". Ваш суфікс завжди виражає намір функціональності файлу часткового класу. Крім того, чи є причина, чому ви використовуєте. сепарація проти кожуха? Чи робить. забезпечити щось більше, ніж покращену читабельність? Дякую.
Бен Грісуолд,

11
Правильно - назва файлу вказує наміри коду в цій частині . Отже, якщо я реалізую екзотичний інтерфейс (і зберігаю код окремо), це може бути SomeType.ICustomTypeDescriptor.cs. .(ІМО) розділяє дві речі: фактичний тип ( SomeType) і мета ICustomTypeDescriptor- як уже повністю упакованим; крім того, вона відповідає акуратно з речами , як SomeForm.Designer.cs;-p
Marc Gravell

Ідеально Дякуємо за додаткову інформацію. Якби я міг зробити більше, ніж проголосуйте за вашу відповідь і позначте так само правильно, як би я.
Ben Griswold

1
@Marc Gravell: чи знаєте ви випадково будь-які розширення VS, що забезпечують функціональність встановлення DependentUpon для файлів?
Dyppl

2
@Dyppl Розширення FileNesting може це зробити
gt

15

Щоб додати відповідь Марка Гравелла ♦, у мене була ситуація з файлами в підпапці, а 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>

Сподіваюся, це комусь допоможе :)


я також. це сталося тому, що я запустив проект у базі даних спочатку, і коли він створив модель, він помістив їх всередину схеми моделі. VS2015, якщо це має значення для когось.
Джошуа К
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.