Соглашение об именах пространства имен, когда [CompanyName] начинается с нижнего регистра "i",
Название моей компании начинается с нижнего регистра "i". Например: iWare (это не настоящее имя компании, но оно демонстрирует цели).
Из-за этого я обнаружил, что мне постоянно приходится бороться с StyleCop и Resharper из-за правил/соглашений об именах имен.
Есть ли у кого-нибудь идеи, как я должен называть мои пространства имен (а иногда и классы).
EG.
namespace iWare.Product.X
{
...
}
Как вы можете себе представить, большинство инструментов, показанных выше, не нравится. Есть ли какие-либо предложения относительно того, какой должна быть альтернатива? Я попытался подавить ошибку, используя следующее:
[SuppressMessage("StyleCop.CSharp.NamingRules", "SA1300:ElementMustBeginWithUpperCaseLetter", Justification = "Reviewed. Suppression is OK here.")]
namespace iWare.Product.X
{
...
}
Но это приводит к следующей ошибке: Объявление пространства имен не может содержать модификаторы или атрибуты
Любые идеи?
Ответы
Ответ 1
похоже, что вы используете iWare или название вашей компании в качестве корневого пространства имен.
В моих проектах я обычно указываю свое корневое пространство имен в/используя окно свойств MyProject или MenuItem 'Project' > 'Properties' > 'Application' - текстовое поле "root namespace" справа.
Таким образом, я вообще не указываю его в своей кодировке, если я не ссылаюсь на него из другого компонента/проекта в качестве импорта.
Ответ 2
Ответ Бретта рассматривает проблему с помощью инструментов, но для ответа на вопрос в заголовке (какое соглашение об именах имен должно использоваться, когда название компании начинается с нижнего регистра письмо):
Эта статья MSDN, связанная с этим другим ответом, гласит:
Если ваш бренд использует нетрадиционный корпус, вы должны следить за корпусом, определенным вашим брендом, даже если он отклоняется от обычного пространства пространства имен.
Итак, согласно Microsoft правильное имя пространства имен в вашем примере на самом деле будет iWare.Product.X
с строчным "i".