Импорт пространства имен, начиная с ключевого слова в веб-конфигурации - PullRequest
0 голосов
/ 19 сентября 2018

У нас есть веб-приложение asp.net со смесью vb и C #.Недавно мы представили проект в нашем приложении, пространство имен которого начинается с Global, чтобы соответствовать структуре нашей архитектуры.Сейчас в нашем приложении есть много ссылок на это пространство имен, и переименование этих ссылок далеко от идеала.(Это было введено для выполняемой нами миграции, поэтому мы перемещаем элементы из одного проекта в другой).

Поскольку Global является ключевым словом в vb (технически также в C #, но в C # оно нижеслучай, так что у нас все хорошо) нам пришлось добавить в него vb, как это [Global].Core.Constants

Это работало хорошо для нас до самого последнего внесенного нами изменения.Это изменение потребует ссылки Global.Core.Constants в серверных тегах в нашем приложении.Поскольку это миграция, на старое пространство имен было указано в файле web.config для обеспечения глобального доступа к нему.К сожалению, мы сталкиваемся с проблемами при попытке сделать это с пространством имен, имя которого начинается с Global.Ниже приведено то, что мы попробовали, и ошибки (обратите внимание, что ошибки возникают при компиляции форм ASP с использованием aspnet_compiler.exe)

<pages>
  <namespaces>
    <add namespace="Global.Core.Constants" />
  </namespaces>
</pages>

Ошибка:

vbc: (0): ошибка BC36001: ошибка в импорте уровня проекта «Global.Core.Constants» в «Global»: «Global» не разрешен в этом контексте;ожидается идентификатор.

Следующая попытка:

<pages>
  <namespaces>
    <add namespace="Global.Global.Core.Constants" />
  </namespaces>
</pages>

Та же ошибка

Следующая попытка:

<pages>
  <namespaces>
    <add namespace="[Global].Core.Constants" />
  </namespaces>
</pages>

Ошибка:

C: \ dev \ Branches \ TEST \ WebApp \ web.config (105): ошибка CS1001: ожидаемый идентификатор C: \ dev \ Branches \ TEST \ WebApp \ web.config (105): ошибка CS0116: AПространство имен не может напрямую содержать элементы, такие как поля или методы C: \ dev \ Branches \ TEST \ WebApp \ web.config (105): ошибка CS0116: Пространство имен не может напрямую содержать члены, такие как поля или методы C: \ dev \ Branches \ TEST\ WebApp \ web.config (105): ошибка CS1022: определение типа или пространства имен или ожидаемый конец файла C: \ dev \ Branches \ TEST \ WebApp \ web.config (105): ошибка CS1022: определение типа или пространства именили ожидаемый конец файла

Мы попробовали несколько других вариантов, таких как псевдоним пространства имен, а затем импорт псевдонима, но это также не сработало.Есть ли у нас здесь какие-либо варианты, кроме полной квалификации?

...