В соответствии с рекомендациями Microsoft
X НЕ используйте одно и то же имя для пространства имен и тип в этом пространстве имен.
После этогоПравило кажется обязательным, но не так просто.Чтобы продемонстрировать мою проблему, давайте возьмем общую функцию Account
.Допустим, есть Account
, который является абстрактной базой с некоторыми дополнительными функциями, такими как Inbox
, и двумя реализациями User
и Device
.Конечно, каждый из его недостатков потребует некоторых моделей.
Account
+--- Account.cs
+--- AccountController.cs
+--- Inbox
| +--- Inbox.cs
| +--- InboxController.cs
| \--- Message.cs
+--- Device
| +--- Device.cs
| \--- DeviceController.cs
+--- User
+--- User.cs
\--- DeviceController.cs
Эта структура явно имеет конфликт имен между пространством имен (имя папки) и классом (имя модели).Я мог бы легко разрешить первый конфликт, изменив имя основной функции Account
на что-то более причудливое, например Identity
, но это все еще оставляет два других (User
и Devices
) нерешенными.Всегда ли мне нужно найти «лучшее причудливое имя» для каждой функции, чтобы избежать этой проблемы?
Имейте в виду, что я хочу следовать структуре folder-by-feature
, поэтому создание новой папки / пространства имен только для моделей не являетсяопция.