部分クラスファイルの命名規則


93

ASP.NET MVC足場コードの大部分を生成しています。生成されたファイルはすべて、標準の命名規則を使用する部分クラスです。たとえば、私の従業員コントローラーファイルの名前はEmployeeController.csです。生成されていないカスタムロジックでEmployeeControllerを拡張する場合は、EmployeeControllerCustom.csという名前の2番目の部分クラスファイルを作成します。カスタムロジックと生成されたロジックを2つの異なるファイルに分離したので、次にEmployeeControllerを生成したときに、カスタムの変更が上書きされません。「カスタム」サフィックスをファイル名に追加することは私には理にかなっているようですが、私が従うべきより確立された部分クラスファイルの命名規則がありますか

回答:


151

私は.分離を使用しています-たとえば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

5
DependentUponの提案は非常に優れており、効果的に機能します。注意していただきありがとうございます。私が正しく読んでいるのであれば、「カスタム」のような標準的なサフィックスを単に使用するのではありません。サフィックスは、常に部分クラスファイルの機能の意図を表します。また、を使用する理由があります。ケーシングとは反対の分離?を行います。読みやすさの向上以上のものを提供しますか?ありがとう。
ベングリスウォルド

11
正しい-ファイル名は、その部分のコードの意図を示しています。だから私がエキゾチックなインターフェースを実装しているなら(そしてコードを別々に保つなら)、それはそうかもしれませんSomeType.ICustomTypeDescriptor.cs.(IMO)は、2つのものを分離する:実際の型(SomeType)と意図ICustomTypeDescriptor-既に完全ケーシング共に。さらに、それはSomeForm.Designer.cs;-p
Marc Gravellの

完璧です。追加の洞察をありがとう。私が賛成票以上のことをできるとしたら、あなたの答えとマークは正解です。
ベングリスウォルド

1
@Marc Gravell:ファイルにDependentUponを設定する機能を提供するVS拡張機能を知っていますか?
Dyppl

2
@Dyppl FileNesting拡張機能はこれを行うことができます
gt

15

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>

これが誰かを助けることを願っています:)


私も。これは、データベースファーストでプロジェクトを開始し、モデルを作成したときにモデルダイアグラム内に配置したために発生しました。VS2015それが誰かに違いをもたらすなら。
ジョシュアK
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.