Compartir a través de


CodeElement2.RenameSymbol (Método)

Cambia el nombre declarado de un objeto y actualiza todas las referencias de código al objeto dentro del ámbito del proyecto actual.

Espacio de nombres:  EnvDTE80
Ensamblado:  EnvDTE80 (en EnvDTE80.dll)

Sintaxis

'Declaración
Sub RenameSymbol ( _
    NewName As String _
)
void RenameSymbol(
    string NewName
)
void RenameSymbol(
    String^ NewName
)
abstract RenameSymbol : 
        NewName:string -> unit 
function RenameSymbol(
    NewName : String
)

Parámetros

  • NewName
    Tipo: System.String
    Obligatorio.Nombre del símbolo que se va a cambiar de nombre.

Comentarios

Si no se puede completar alguna parte de la operación de cambio de nombre (dentro del ámbito del proyecto actual), el método devuelve un error.

Nota

No se puede llamar a RenameSymbol ni a ElementID enlazados en tiempo de ejecución. (Por ejemplo, DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2").) Deberá convertir explícitamente el objeto a la interfaz CodeElement2 antes de realizar la llamada.

Los elementos de código de EnvDTE80 (de ahora en adelante denominados objetos Code*2) derivan de los elementos de EnvDTE. (Por ejemplo, CodeClass2 deriva de CodeClass y CodeElement2 deriva de CodeElement). Internamente en Visual Studio, todos los elementos de código (de ambos ensamblados) se convierten a su vez en CodeElement2. Así que, lógicamente, es como si, por ejemplo, CodeClass2 derivara finalmente de CodeElement2.

Puesto que los dos elementos en realidad se encuentran en dos jerarquías de herencia independientes, el enlazador en tiempo de ejecución no puede buscar métodos CodeElement2 en objetos Code*2. EnvDTE funciona esencialmente de la misma manera, pero el uso de macros de pre-procesador permite las interfaces ser definidas de modo que los métodos heredados se definen explícitamente en todas las interfaces relacionadas para las que las conversiones existen. Las interfaces EnvDTE80 se definen usando un esquema de herencia similar, pero sin el uso de instrucciones de pre-procesador. Ésta es una solución más elegante ya que elimina las propiedades redundantes, pero el resultado es que las propiedades no se pueden considerar enlazadas en tiempo de ejecución. Para solucionar este problema, deberá convertir explícitamente el objeto a la interfaz CodeElement2 antes de realizar la llamada.

Además, los valores de los elementos de modelo de código como clases, structs, funciones, atributos, delegados, etc., pueden ser no deterministas una vez realizados determinados tipos de modificaciones; esto significa que no se puede confiar en que sus valores se mantengan siempre igual. Para obtener más información, vea la sección Los valores de elementos de modelo de código pueden cambiar, en Detectar código utilizando el modelo de código (Visual Basic).

Seguridad de .NET Framework

Vea también

Referencia

CodeElement2 Interfaz

EnvDTE80 (Espacio de nombres)

Otros recursos

Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización

Detectar código utilizando el modelo de código (Visual Basic)

Detectar código utilizando el modelo de código (Visual C#)

Implementar y utilizar extensores de automatización