Interfaccia CodeElement2
Rappresenta un costrutto o un elemento di codice in un file di origine.
Spazio dei nomi: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Sintassi
'Dichiarazione
<GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")> _
Public Interface CodeElement2 _
Inherits CodeElement
[GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")]
public interface CodeElement2 : CodeElement
[GuidAttribute(L"F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")]
public interface class CodeElement2 : CodeElement
[<GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")>]
type CodeElement2 =
interface
interface CodeElement
end
public interface CodeElement2 extends CodeElement
Il tipo CodeElement2 espone i seguenti membri.
Proprietà
Nome | Descrizione | |
---|---|---|
Children | Ottiene una raccolta di oggetti contenuti all'interno di CodeElement2. | |
Collection | Ottiene la raccolta CodeElements contenente l'oggetto CodeElement2 che supporta la proprietà. | |
DTE | Ottiene l'oggetto estensibilità di primo livello. | |
ElementID | Ottiene un valore che identifica in modo univoco l'elemento.Non implementato in Visual C#. | |
EndPoint | Ottiene il punto di inserimento corrispondente alla fine dell'elemento di codice. | |
Extender | Restituisce l'oggetto Extender richiesto, se disponibile per l'oggetto CodeElement2.Non implementato in Visual C#. | |
ExtenderCATID | Ottiene l'ID della categoria Extender (CATID) per l'oggetto CodeElement2.Non implementato in Visual C#. | |
ExtenderNames | Ottiene un elenco degli oggetti Extender disponibili per l'oggetto CodeElement2.Non implementato in Visual C#. | |
FullName | Ottiene il percorso completo e il nome del file dell'oggetto CodeElement2. | |
InfoLocation | Ottiene le funzionalità del modello di codice. | |
IsCodeType | Determina se è possibile o meno ottenere un oggetto CodeType dall'oggetto CodeElement2. | |
Kind | Ottiene un'enumerazione che definisce il tipo di elemento di codice. | |
Language | Ottiene il linguaggio di programmazione utilizzato per modificare CodeElement2. | |
Name | Ottiene o imposta il nome dell'oggetto CodeElement2. | |
ProjectItem | Ottiene l'oggetto ProjectItem associato all'oggetto CodeElement. | |
StartPoint | Ottiene un oggetto TextPoint che definisce l'inizio di CodeElement2. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
GetEndPoint | Ottiene un oggetto TextPoint che contrassegna la fine della definizione dell'elemento di codice. | |
GetStartPoint | Ottiene un oggetto TextPoint che contrassegna l'inizio della definizione dell'elemento di codice. | |
RenameSymbol | Modifica il nome dichiarato di un oggetto e aggiorna tutti i riferimenti del codice all'oggetto nell'ambito del progetto corrente. |
In alto
Note
Sebbene un elemento di codice possa essere costituito da qualsiasi frammento di codice, in genere in un linguaggio è presente un oggetto CodeElement2 per ogni definizione o sintassi dichiarativa. Di conseguenza, per le dichiarazioni o le definizioni di primo livello contenute in un file o per qualsiasi forma sintattica inclusa in una definizione di classe e così via, è disponibile un oggetto CodeElement2 corrispondente.
Nota
I valori degli elementi del modello di codice, quali classi, strutture, funzioni, attributi, delegati e così via, possono non essere deterministici dopo alcuni tipi di modifiche. Ciò significa che non si può fare affidamento sulla stabilità di tali valori.Per ulteriori informazioni, vedere la sezione Possibile modifica dei valori degli elementi del modello di codice in Individuazione di codice mediante il modello di codice (Visual Basic).
Esempi
[Visual Basic]
Sub IsCodeTypeExample(ByVal dte As DTE2)
' NOTE: This example requires a reference to the System.Text
' namespace.
' Before running this example, open a code document from a project.
Dim item As ProjectItem = dte.ActiveDocument.ProjectItem
Dim sb As New StringBuilder
RecurseElements(item.FileCodeModel.CodeElements, 0, sb)
MsgBox(item.Name & " contains the following elements:" & vbCrLf & _
vbCrLf & sb.ToString())
End Sub
Sub RecurseElements(ByVal elems As CodeElements, _
ByVal level As Integer, ByVal sb As StringBuilder)
Dim elem As CodeElement
For Each elem In elems
' Add element to the list of names.
sb.Append(" "c, level * 8)
sb.Append(elem.Name & " [" & elem.Kind.ToString() & "]" & _
vbCrLf)
' Call this function recursively if element has children.
If elem.Kind = vsCMElement.vsCMElementNamespace Then
RecurseElements(CType(elem, CodeNamespace).Members, _
level + 1, sb)
ElseIf elem.IsCodeType Then
RecurseElements(CType(elem, CodeType).Members, _
level + 1, sb)
End If
Next
End Sub
[C#]
public void IsCodeTypeExample(DTE2 dte)
{
// NOTE: This example requires a reference to the System.Text
// namespace.
// Before running this example, open a code document from a
// project.
ProjectItem item = dte.ActiveDocument.ProjectItem;
StringBuilder sb = new StringBuilder();
RecurseElements(item.FileCodeModel.CodeElements, 0, sb);
MessageBox.Show(item.Name + " contains the following elements:" +
Environment.NewLine + Environment.NewLine + sb.ToString());
}
void RecurseElements(CodeElements elems, int level, StringBuilder sb)
{
foreach (CodeElement elem in elems)
{
// Add element to the list of names.
sb.Append(' ', level * 8);
sb.Append(elem.Name + " [" + elem.Kind.ToString() + "]" +
Environment.NewLine);
// Call this function recursively if element has children.
if (elem.Kind == vsCMElement.vsCMElementNamespace)
RecurseElements(((CodeNamespace)elem).Members,
level + 1, sb);
else if (elem.IsCodeType)
RecurseElements(((CodeType)elem).Members, level + 1, sb);
}
}
Vedere anche
Riferimenti
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#)