Partilhar via


CodeAttribute2.Children Property

Definition

Gets a collection of objects contained within this code construct.

public:
 property EnvDTE::CodeElements ^ Children { EnvDTE::CodeElements ^ get(); };
[System.Runtime.InteropServices.DispId(8)]
public EnvDTE.CodeElements Children { [System.Runtime.InteropServices.DispId(8)] [System.Runtime.InteropServices.TypeLibFunc(1024)] get; }
[<System.Runtime.InteropServices.DispId(8)>]
[<get: System.Runtime.InteropServices.DispId(8)>]
[<get: System.Runtime.InteropServices.TypeLibFunc(1024)>]
member this.Children : EnvDTE.CodeElements
Public ReadOnly Property Children As CodeElements

Property Value

Returns a CodeElements collection.

Implements

Attributes

Examples

The following example creates a new namespace and attribute in the current class and lists some of the attribute's properties.

Sub Children2Example(ByVal dte As DTE2)  
    ' Before running this example, open a code page of a project  
    ' and place the insertion point inside a namespace definition.  
    Try  
        ' Retrieve the CodeNamespace at the insertion point.  
        Dim sel As TextSelection = _  
            CType(dte.ActiveDocument.Selection, TextSelection)  
        Dim spc As CodeNamespace = _  
            CType(sel.ActivePoint.CodeElement( _  
            vsCMElement.vsCMElementNamespace), CodeNamespace)  

        ' Find the namespace's children.  
        Dim children As String  
        Dim elem As CodeElement  
        For Each elem In spc.Children  
            children &= elem.Name & vbCrLf  
        Next  

        MsgBox(spc.Name & " has the following child code elements:" & _  
            vbCrLf & vbCrLf & children)  
    Catch ex As Exception  
        MsgBox(ex.Message)  
    End Try  

End Sub  
public void Children2Example(DTE2 dte)  
{  
    // Before running this example, open a code document from a project  
    // and place the insertion point inside a namespace definition.  
    try  
    {  
        // Retrieve the CodeNamespace at the insertion point.  
        TextSelection sel =   
            (TextSelection)dte.ActiveDocument.Selection;  
        CodeNamespace spc =   
            (CodeNamespace)sel.ActivePoint.get_CodeElement(  
            vsCMElement.vsCMElementNamespace);  

        // Find the namespace's children.  
        string children = "";  

        foreach (CodeElement elem in spc.Children)  
        children += elem.Name + "\r\n";  

        MessageBox.Show(spc.Name +   
            " has the following child code elements:" + "\r\n\r\n" +   
            children);  
    }  
    catch (Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}  

Remarks

If an object has no children, then Nothing or null is returned.

This property is used primarily by Visual C++. The Children property returns every object returnable from a code element. A class, for example, returns members, bases, implemented interfaces, attributes, comments, and so forth.

To iterate through the members of a namespace or type (class, struct, interface, and so forth), you must query interface (QI) or cast the CodeElement object to a CodeNamespace object and then use the Members property.

The Children property returns the collection of all related CodeElement2 objects that can be referenced via this code element. For example, for a CodeClass2 object, this might include the metadata code elements for the class and perhaps the Visual C++ declspecs, along with contributed code based on the Attributed Programming feature in Visual C++, template parameters, and so forth. A CodeFunction2 object might include all of its parameters, contributed parameters based on the Attributed Programming feature, and so forth.

The Children property may return Nothing or null depending on the object and the language. There is no requirement to support this in Visual Studio.

Applies to