Riderはいいぞ
いきなり回し者みたいな書き出しですが、ムッチャ書きやすいです。usingとか自動で挿入してくれますし。
名前空間の自動挿入
新しくcsファイルを作ったら勝手に名前空間も挿入してくれます。便利です。名前空間はデフォルトではプロジェクト名とディレクトリで決めてくれます。例えばNameSpaceプロジェクトでDomainディレクトリを作り、MainというClassを作った時、以下のようなファイルが生成されます。
Main.cs
namespaceNameSpace.Domain{publicclassMain{}}
自動は便利だけど。。。
NameSpaceプロジェクトとは別に、関連するプロジェクトを作るとしましょう。ゲームだったらマップファイル作成ツールとかそんな感じのやつです。そのプロジェクトで使うコードを本プロジェクトで流用することもあり得るわけです。関連プロジェクトの名前を仮にNameSpaceTestとかにするとルートの名前空間名もそうなってしまいますが、コードを流用する点ではまずいわけです。
Main.cs
namespaceNameSpaceTest.Domain{publicclassMain{//NameSpaceTest名前空間内にある}}
無理やり書き換えてもいいですが、こんな感じで波線がつきます。
この波線をどうにかします。自動で挿入してくれたりAlt+Enterでリファクタリングできると楽ですし。ValueObjectの方はSubという名前空間も無視するようにします。
やり方
ルート名前空間の方
プロジェクトプロパティにRoot namespaceがあるのでそれを書き換えます。
ディレクトリの無視
ディレクトリのプロパティにNamespace providerというチェックが付いてるはずなのでこれを外します。
結果
参考
名前空間を調整する - 公式ヘルプ | JetBrains Rider
https://pleiades.io/help/rider/Refactorings__Adjust_Namespaces.html