Доступ к коду внутри проекта

Оценить
(0 голоса)

Кроме основных атрибутов и элементов проекта через экземпляр Project можно получить доступ к реальному коду исходных файлов проекта. Описание: image267 

При помощи свойства CodeModel вы можете получить доступ ко всей линейке прокси-объектов, представляющих собой конст­рукции кода внутри проекта. Например, интерфейс CodeClass позволяет вам изучить и от­редактировать код для данного класса в данном проекте.

Примечание

Поддержка объектов модели CodeModel для разных языков отличается. В докумен­тации MSDN для каждого типа CodeModel четко указана имеющаяся языковая под­держка данного элемента.

После получения ссылки на CodeModel из экземпляра Project вы можете получить доступ к его коллекции CodeElements (которая (естественно) является коллекцией объектов CodeElement). CodeElement — это просто обобщенное представление определенной кодо­вой структуры в проекте. Объект CodeElement является обобщенным, но у него есть свой­ство Kind. Оно используется для определения точного типа объекта кода, содержащегося внутри CodeElement.

Свойство CodeElement. Kind является перечислением (типа vsCMElement), которое уста­навливает тип конструкции кода, скрытой в объекте CodeElement. Используя свойство Kind, вы можете сначала определить истинную природу элемента кода, а затем привести объект CodeElement к его строгому типу. Вот фрагмент кода на языке С#, который делает именно это:

if (element.Kind == vsCMElement.vsCMElementClass)

*    CodeClass myClass = (CodeClass)element;

}

Для того чтобы лучше уловить иерархию модели кода, рассмотрим код на С#, представлен­ный в листинге 11.1; это "ядро" решения, которое просто реализует пространство имен, класс внутри этого пространства и функцию в этом классе.

using System;

using System.Collections.Generic; using System.Text;

namespace MyNamespace {

class MyClass {

public string Sumlnt(int x, int y) {

return (x + y).ToString();

}

Если вы установите соответствие кода листинга 11.1с моделью объектов кода, то вы полу­чите структуру, показанную на рис. 11.2.

Для того чтобы получить представление о полной глубине дерева модели кода, доступ к которому можно получить через коллекцию CodeEl^ments, загляните в табл. 11.5; в этой таблице показаны все возможные значения элемента vsCMElement, представляемый ими тип и краткое описание этого типа. Описание: image268

Подробнее в этой категории: « Visual Studio создана расширяемой Окна »
Окна
Ссылки на окна
Текстовые окна и панели окон
Visual Studio создана расширяемой
Обзор объектной модели расширяемости

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.