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


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
    Тип: 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#)

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