Post­Sharp Documentation / API Reference / Post­Sharp.​Patterns.​Model Namespace / IAggregatable Interface

IAggregatable Interface

Defines members (principally Parent and VisitChildren(ChildVisitor, ChildVisitorOptions, Object)) that allow to consume parent-child relationships in an object tree.

Namespace:  PostSharp.Patterns.Model
Assembly:  PostSharp.Patterns.Aggregation (in PostSharp.Patterns.Aggregation.dll) Version: (
public interface IAggregatable

The IAggregatable type exposes the following members.

Public propertyParent
Gets the parent of the current object.
Public propertyParentRelationship
Describes the relationship between the current object and its parent. Valid values are Child or ParentSurrogate.
Public methodVisitChildren
Executes an action for all direct children of the current object.
Public eventAncestorChanged
Occurs when any ancestor changes. An ancestor is the parent of the current object or the parent of an ancestor of the current object.
Public eventParentChanged
Occurs when the Parent property changes.
Extension Methods
Public Extension MethodGetChildren
Gets the list of children of a specified parent object.
(Defined by AggregatableExtensions.)
Public Extension MethodGetDistinctChildren
Gets a list of distinct children of a specified parent object.
(Defined by AggregatableExtensions.)
Public Extension MethodIsDescendantOf
Determines whether a specified object is a descendant of a specified ancestor.
(Defined by AggregatableExtensions.)
Public Extension MethodVisitSelfAndDescendants
Executes a ChildVisitor for the a specified parent object and all its descendants.
(Defined by AggregatableExtensions.)

If a class implements this interface, it must also implement IAttachable. These two interfaces have been separated for clarity, since IAttachable should normally not be consumed from user code.

See Also