ドメイン駆動設計でコーディングをしていると、クラス名、名前空間を変更したいことが多々あります。
これらを変更するコストは低くすべきです。
今回は、Visual Studio C# でこれらを一括して変更する3つの方法をお伝えします。
- クラス名の変更機能
- 名前空間の変更
- 全置換
- Windows10 Home 64bit
- VisualStudio Community 2019 Version 16.11.2
- .Net FrameWork 4.72
クラス名の変更機能
クラス名を変更する方法です。この方法で変更すると、他のファイル、他のプロジェクトにも反映されます。
ドメイン駆動設計でコーディングを行っていると、クラス名を変更したいことがよくあります。この機能は重宝します。
まずは変更したいクラスのファイルを開きます。そのあと、クラス名にカーソルを当てて、右クリック→名前の変更を選択します。
名前の変更を実行すると、クラス名が変更されます。ファイル名も同時に変更されます。クラス名の変更は、他のファイル、他のプロジェクトにも反映されます。
名前空間の変更
次は、名前空間を変更する方法です。ドメイン駆動設計でコーディングを行っていると、クラス名だけでなく、名前空間を変更したくなることも多々あります。
ここでは、名前空間を変更する方法を書きます。
名前空間とプロジェクトのフォルダ構成が一致していることが前提です。特にこだわりがなければ、これらは一致させておくほうがいいです。ドメイン駆動設計は、コーディングとリファクタリングを繰り返しながらモデルを作成していきます。名前空間の変更は本当によくあるので、変更にかかるコストは極力削減すべきです
名前空間を NameChg.Test1 → NameChg.Test2 に変更する場合で説明します。
まずは、プロジェクトのフォルダ構成を変更します。ソリューションエクスプローラーで実行します。
そのあと、名前空間を変更したいファイルを開きます。namespace XXX.YYY の行の最後を選択し、右クリックをします。
「名前空間を XXX.YYY に変更します」を選択します。
これで完了です。
全置換
最後に、フォルダ移動、フォルダ名を変更した場合です。前章の方法でも変更は可能です。が、フォルダ内のクラスファイルが多くなると、時間がかかります。なので、一括で変更する方法をお伝えします。
と言っても、全置換を行うだけです。
以下の構成で、Test22 → Test33 に変更することをやってみます。
まずは、ソリューションエクスプローラーでフォルダを選択し、F2 で名前を変更します。
Ctrl + Shift + H で置換を行います。置換は2回行います。
1回目
置換前 : namespace XXX.YYY.Test22
置換後 : namespace XXX.YYY.Test33
2回目
置換前 : using XXX.YYY.Test22
置換後 : using XXX.YYY.Test33
まとめ
Visual Studio C# でクラス名や名前空間などを一括して変更する3つの方法をお伝えしました。
ドメイン駆動設計だと、名前を変更することが多々あります。クラスファイルが多くなると変更に時間がかかります。
ささっと変更する方法を使いこなしていきましょう。
コメント