Condividi tramite


Proprietà CodeElement2.ElementID

Ottiene un valore che identifica in modo univoco l'elemento.Non implementato in Visual c#.

Spazio dei nomi:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Sintassi

'Dichiarazione
ReadOnly Property ElementID As String
string ElementID { get; }
property String^ ElementID {
    String^ get ();
}
abstract ElementID : string
function get ElementID () : String

Valore proprietà

Tipo: System.String
Stringa che rappresenta il valore univoco per l'elemento.

Note

ElementID la proprietà è un valore che viene calcolato in base al nome dell'elemento e altre informazioni che identificano in modo univoco l'elemento.Il calcolo esatto dell'ID varia tra i linguaggi.

Questo ID è utilizzato dai client del modello di codice per tenere traccia degli elementi senza mantenere riferimenti.È incluso gli eventi del modello di codice per notificare al codice client dell'elemento che si sta modificando.I nuovi ID vengono forniti quando vengono creati.

Il valore di ElementID la proprietà non deve essere considerata permanente.Potrebbe variare ogni volta che il modello di codice viene creato per un progetto e anche possibile cambiare nella sessione corrente.ElementChanged l'evento si verifica ogni volta ElementID modifiche.

[!NOTA]

Non è possibile chiamare RenameSymbol o ElementID latebound.Ad esempio, DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2")). È necessario eseguire esplicitamente il cast dell'oggetto a CodeElement2 interfaccia prima di effettuare la chiamata.

Elementi di codice in EnvDTE80 (in futuro chiamato oggetti Code*2) derivare da quelli in EnvDTE.Ad esempio, CodeClass2 deriva da CodeClasse CodeElement2 deriva da CodeElement). Internamente in Visual Studio, tutti gli elementi di codice (in entrambi gli assembly) a sua volta che viene eseguito il cast su CodeElement2.Pertanto, logicamente, è come se CodeClass2, ad esempio, infine deriva da CodeElement2.

Poiché i due elementi vengono in realtà in due gerarchie di ereditarietà separate, tuttavia, il latebinder non sia possibile trovare CodeElement2 metodi su oggetti Code*2.EnvDTE è essenzialmente la stessa modalità, ma l'utilizzo delle macro del preprocessore consente delle interfacce sono definiti in modo che i metodi ereditati vengano definiti in modo esplicito su tutte le conversioni relative interfacce per cui esistano. EnvDTE80 le interfacce vengono definite utilizzando simile combinazione di ereditarietà, solo senza l'utilizzo di istruzioni del preprocessore.Si tratta di una soluzione più elegante poiché elimina le proprietà ridondanti, ma il risultato è che le proprietà non possono essere chiamate latebound.Per risolvere questo problema, eseguire esplicitamente il cast dell'oggetto a CodeElement2 collegare prima di effettuare la chiamata.

Inoltre, i valori degli elementi del modello di codice come classi, strutture, le funzioni, gli attributi, delegati, e così via possono non essere deterministici dopo l'inserimento di determinati tipi di modifiche, pertanto i relativi valori non possono essere basati su per rimanere sempre gli stessi.Per ulteriori informazioni, vedere i valori degli elementi del modello di codice della sezione può cambiare in Individuazione di codice mediante il modello di codice (Visual Basic).

Sicurezza di .NET Framework

Vedere anche

Riferimenti

CodeElement2 Interfaccia

Spazio dei nomi EnvDTE80

Altre risorse

Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione

Individuazione di codice mediante il modello di codice (Visual Basic)

Individuazione di codice mediante il modello di codice (Visual C#)