Partager via


CodeElement2.RenameSymbol, méthode

Modifie le nom déclaré d'un objet et met à jour toutes les références de code à l'objet dans la portée du projet actuel.

Espace de noms :  EnvDTE80
Assembly :  EnvDTE80 (dans EnvDTE80.dll)

Syntaxe

'Déclaration
Sub RenameSymbol ( _
    NewName As String _
)
void RenameSymbol(
    string NewName
)
void RenameSymbol(
    String^ NewName
)
abstract RenameSymbol : 
        NewName:string -> unit 
function RenameSymbol(
    NewName : String
)

Paramètres

  • NewName
    Type : System.String
    Obligatoire.Nom du symbole à renommer.

Notes

Si une partie de l'opération ne peut pas être effectuée (dans la portée du projet actuel), la méthode retourne une erreur.

Notes

Vous ne pouvez pas appeler RenameSymbol ou ElementID à liaison tardive. (Par exemple, DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2").) Vous devez effectuer un cast explicite de l'objet en l'interface CodeElement2 avant d'effectuer l'appel.

Les éléments de code dans EnvDTE80 (ci-après dénommés objets Code*2) dérivent de ceux de EnvDTE. (Par exemple, CodeClass2 dérive de CodeClass, et CodeElement2 dérive de CodeElement.) En interne dans Visual Studio, tous les éléments de code (dans les deux assemblys) sont castés les uns aux autres en CodeElement2. Ainsi, logiquement, c'est au bout du compte comme si CodeClass2, par exemple, dérivait de CodeElement2.

Étant donné que les deux éléments figurent en réalité dans deux hiérarchies d'héritage séparées, toutefois, le latebinder ne peut pas rechercher de méthodes CodeElement2 sur les objets Code*2. EnvDTE fonctionne essentiellement de la même façon, mais l'utilisation de macros de pré-processeur autorise les interfaces à être définies de façon à ce que les méthodes héritées soient définies explicitement sur toutes les interfaces connexes pour lesquelles les conversions existent. Les interfaces EnvDTE80 sont définies à l'aide d'un modèle d'héritage similaire, mais sans utilisation d'instructions de pré-processeur. Cette solution est plus élégante puisqu'elle élimine les propriétés redondantes, mais le résultat est que les propriétés ne peuvent pas être appelées à liaison tardive. Pour contourner ce problème, effectuez un cast explicite de l'objet en interface CodeElement2 avant d'effectuer l'appel.

En outre, les valeurs d'éléments de modèle de code, tels que des classes, des structures, des fonctions, des attributs, des délégués, etc., peuvent être non déterminables après certains types de modifications, ce qui signifie qu'il n'est pas certain que leurs valeurs resteront inchangées. Pour plus d'informations, consultez la section Les valeurs d'élément de modèle de code peuvent être modifiées de la rubrique Découverte de code à l'aide du modèle de code (Visual Basic).

Sécurité .NET Framework

Voir aussi

Référence

CodeElement2 Interface

EnvDTE80, espace de noms

Autres ressources

Comment : compiler et exécuter les exemples de code du modèle objet Automation

Découverte de code à l'aide du modèle de code (Visual Basic)

Découverte de code à l'aide du modèle de code (Visual C#)

Implémentation et utilisation des extendeurs Automation