Соглашение об именах пространства имен, когда [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".