2009-08-13 2 views
0

Я работаю с VCCodeModel как в C#, так и в C++ CLR, и мне трудно получить тип VCCodeModel в проекте CLR. Я добавил Microsoft.VisualStudio.VCCodemodel в качестве ссылки, но когда я типа:VCCodeModel не в пространстве имен VCCodeModel?

Microsoft::VisualStudio::VCCodeModel::VCCodeModel 

Visual Studio не может увидеть модель кода. Все остальные объекты в пространстве имен, такие как VCCodeFunction и VCFileCodeModel, все работают, но это не удается.

VCCodeModel Namespace

Есть ли какая-то ошибка, которая может привести к этому? Я использую проект надстройки по умолчанию с C++ CLR в качестве выбранного языка и добавил ссылку Microsoft.VisualStudio.VCCodeModel в качестве ссылки и могу успешно ссылаться на другие элементы в пространстве. Что может быть здесь?

ответ

2

Вы столкнулись с ошибкой/причудой с Intellisense для C++ IDE. Даже если вы полностью квалифицируете имя класса, если имя класса совпадает с именем пространства имен, оно не будет отображаться в intellisense. И IDE не признает это как класс - цвет имени класса остается черным, а не светло-голубым, как другие классы.

К счастью, это чисто косметическая проблема с IDE. Класс по-прежнему будет хорошо работать в вашем коде, будет компилироваться и т. Д. Вам просто нужно ввести имя класса самостоятельно. :-)

Кроме того, проблема распространяется только на имя класса, а не на его членов. Если вы создадите управляемую ссылку на VCCodeModel в своем коде, вы сможете увидеть intellisense для своих членов.

Вот репродукция, иллюстрирующий проблему IntelliSense в простой неуправляемый класс:

namespace Foo 
{ 
    public class Bar 
    { 
     public: 
      static int x(); 
    }; 
    public class Foo 
    { 
     public: 
      static int x(); 
    }; 
    public class Test 
    { 
     void ThisIsATest() 
     { 
      ::Foo::  // intellisense will show Bar and Test, but not Foo 
      ::Foo::Foo:: // you will see "x" in intellisense 
     } 
    }; 
}; 
+0

Feel смущен, что это то, что проблема была, но спасибо, это просто не отображается в IntelliSense. – user142350

+0

Да, иногда IDE играет на нас! ;-) –

Смежные вопросы