CodeAttribute2.Children Property
Gets a collection of objects contained within this code construct.
Namespace: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Syntax
'Declaration
ReadOnly Property Children As CodeElements
CodeElements Children { get; }
property CodeElements^ Children {
CodeElements^ get ();
}
abstract Children : CodeElements with get
function get Children () : CodeElements
Property Value
Type: EnvDTE.CodeElements
Returns a CodeElements collection.
Remarks
If an object has no children, then Nothing or nulla null reference (Nothing in Visual Basic) 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.
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);
}
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
See Also
Reference
Other Resources
How to: Compile and Run the Automation Object Model Code Examples