Поделиться через


CodeElement2.RenameSymbol - метод

Изменяет объявленное имя объекта и обновляет все ссылки на объект в коде в рамках текущего проекта.

Пространство имен:  EnvDTE80
Сборка:  EnvDTE80 (в EnvDTE80.dll)

Синтаксис

'Декларация
Sub RenameSymbol ( _
    NewName As String _
)
void RenameSymbol(
    string NewName
)
void RenameSymbol(
    String^ NewName
)
abstract RenameSymbol : 
        NewName:string -> unit 
function RenameSymbol(
    NewName : String
)

Параметры

  • NewName
    Тип: System.String
    Обязательный.Имя символа, подлежащего переименованию.

Заметки

Если переименование не удается выполнить полностью (в рамках текущего проекта), метод возвращает ошибку.

Примечание

Вызов RenameSymbol или ElementID с поздним связыванием невозможен.(Например: DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2").) Необходимо явным образом привести объект к интерфейсу CodeElement2, прежде чем производить вызов.

Элементы кода в EnvDTE80 (в дальнейшем называемые объекты Code*2) являются производными от объектов EnvDTE.(Например, CodeClass2 является производным от CodeClass, а CodeElement2 — производным от CodeElement.) Внутри Visual Studio все элементы кода (в обеих сборках) в свою очередь приводятся к CodeElement2.Поэтому логически это можно представить так, словно CodeClass2, например, в конечном счете наследует от CodeElement2.

Однако, поскольку два элемента в действительности находятся в двух отдельных иерархиях наследования, средство поздней привязки не может искать методы CodeElement2 в объектах Code*2.EnvDTE работает по существу одинаково, но использование макросов препроцессора позволяет определять интерфейсы таким образом, чтобы унаследованные методы явным образом определялись для всех связанных интерфейсов, для которых существуют преобразования. Интерфейсы EnvDTE80 определяются с использованием аналогичной схемы наследования, только без использования операторов препроцессора.Это решение является более элегантным, поскольку оно избавляет от необходимости использования лишних свойств, но следствием является невозможность применения вызовов свойств с поздним связыванием.Чтобы обойти это ограничение, необходимо явным образом привести объект к интерфейсу CodeElement2, прежде чем производить вызов.

Кроме того, значения элементов модели кода, таких как классы, структуры, функции, атрибуты, делегаты и т.п., после внесения некоторых изменений могут стать недетерминированными, иными словами, нельзя рассчитывать, что их значения не будут изменяться.Дополнительные сведения см. в разделе "Значения элементов модели кода могут изменяться" раздела Практическое руководство. Поиск кода при помощи модели кода (Visual Basic).

Безопасность платформы .NET Framework

См. также

Ссылки

CodeElement2 Интерфейс

EnvDTE80 - пространство имен

Другие ресурсы

Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации

Практическое руководство. Поиск кода при помощи модели кода (Visual Basic)

Практическое руководство. Поиск кода при помощи модели кода (Visual C#)

Реализация и использование расширителей автоматизации