Visual Studio расширяет пространство имен для создания ошибки - PullRequest
1 голос
/ 17 декабря 2010

Я столкнулся с проблемой в Visual Studio 2008, где при перекомпиляции библиотечного проекта Visual Studio не может разрешить пространство имен.Проблема в том, что Visual Studio без необходимости расширяет пространство имен.Например, у меня есть приведение типа

... = (MyCompany.Dashboard.Data.BaseObjects.ZonesStruct) value;

, которое прекрасно скомпилировано в прошлом, внезапно начинает давать сбой при перекомпиляции.Visual Studio не может решить эту проблему и выдает сообщение об ошибке «Тип или имя пространства имен« Данные »не существует в пространстве имен« MyCompany.MyCompany.Dashboard »...».Изменением, с которого это началось, стало добавление нового класса в библиотеку.Классы, которые терпят неудачу, являются существующими и нетронутыми классами.

Я однажды сталкивался с чем-то похожим, но это был конструктор пользовательского интерфейса, производящий код, который был явно определен как "MyCompany.MyCompany ...".Я надеюсь, что коренная причина одинакова в обеих ситуациях.

Не уверен, полезно ли это или нет, но пространством имен по умолчанию для проекта библиотеки является «MyCompany».Я пытался изменить это, но я не заметил никаких изменений.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 17 декабря 2010

Измените его на

global::MyCompany.Dashboard.Data.BaseObjects.ZonesStruct

global :: экранирует пространство имен вплоть до корневого пространства имен.Это не проблема Visual Studio, это конфликтная проблема пространства имен.

2 голосов
/ 17 декабря 2010

Это не решает проблему, только симптом.Но вы могли бы попытаться убедиться, что ваше пространство имен находится в глобальной области видимости, чтобы начать с использования

... = (global::MyCompany.Dashboard.Data.BaseObjects.ZoneStruct) value;

См. MSDN для получения дополнительной информации о ключевом слове global: http://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx

...