Проблема пространства имен VB.NET, связанная с явным (с именем ) vs. неявные (глобальные или корневые) пространства имен

У меня есть решение, которое содержит множество проектов, использующих одно и то же корневое пространство имен. Никакие файлы кода явно не называют пространство имен. Итак, допустим, корневое пространство имен - ExampleRootNamespace .

Теперь возникает проблема, когда я хочу добавить явно названное пространство имен к одному из файлов кода, над которым я работаю. Я хочу иметь возможность изолировать этот код от остальной части сборки, чтобы иметь возможность запускать FxCop против него. Поэтому я добавляю что-то вроде Namespace Interfaces.CSV в файл кода.

Это приводит к тому, что любой код, который ссылается на эту сборку, должен сказать Imports ExampleRootNamespace.Interfaces.CSV . Все идет нормально. Я даже могу запустить FxCop против сборки. Проблема теперь в том, что в других сборках я больше не могу говорить что-то вроде:

Public class frmInputBoolean Inherits
 ExampleRootNameSpace.frmFormTemplate

Visual Studio теперь просит меня переименовать пространство имен в:

Public class frmInputBoolean Inherits
     Global.ExampleRootNameSpace.frmFormTemplate

С этим связаны сотни ошибок. Итак, у меня следующие вопросы:

1) Почему в основном именование пространства имен под корнем в первый раз вызывает проблемы с программой?

2) Есть ли какие-либо обходные пути для этой проблемы без переименования?

Я также хочу чтобы добавить это в отношении ExampleRootNamespace.Interfaces.CSV , я не упоминаю об этом нигде в кодовой базе. В настоящее время я просто ссылаюсь на него из проекта модульного тестирования. Так что я не Я не понимаю, почему добавление этого пространства имен вызывает проблему.

1
задан Matt 27 September 2010 в 14:04
поделиться