Classes
AggregatableAttribute
Custom attribute that, when applied to a class, enables instances of this class to be involved in a parent-child relationship.
AggregatableAttribute.Serializer
AggregatableClientAttribute
Base class for aspects that consume functionality from the AggregatableAttribute aspect. This class provides functionality to advise and unadvise children.
AggregatableClientAttribute.Serializer
AggregatableExtensions
Provides extension methods for the IAggregatable interface.
AggregatableServices
Provides static methods to aid with the implementation of the IAggregatable interface.
AggregateAllChangesAttribute
Custom attribute that, when applied to a property of a class enhanced with the NotifyPropertyChangedAttribute, specifies that a change of any property of the property value will be considered as a change of the property itself.
AncestorChangedEventArgs
Provides data for the AncestorChanged event.
ChildAttribute
Custom attribute that, when applied to a field or automatic property, specifies that the object assigned to this field or property is a child of the instance of the declaring type.
ChildInfo
Describes a location (typically a field or collection item) on which a child can be attached to a parent.
ChildInfo.Serializer
Depends
Provides a way to specify dependencies of a method on properties or chains of properties. This class should be used from getters of properties marked with the SafeForDependencyAnalysisAttribute custom attribute.
DisposableAttribute
Custom attribute that, when applied to a class, implements the IDisposable interface in such a way that the Dispose() method executes the Dispose() method for all child objects that also implement the IDisposable interface.
DisposableAttribute.Serializer
IgnoreAutoChangeNotificationAttribute
Custom attribute that, when applied to a property, prevents the NotifyPropertyChangedAttribute aspect from raising change notifications for this property.
MemberRelationshipAttribute
Base class for custom attributes that determine the kind of relationship of objects in a graph.
NotifyPropertyChangedAttribute
Custom attribute that, when applied on a type, implements the INotifyPropertyChanged interface for this class and all children classes.
NotifyPropertyChangedAttribute.Serializer
NotifyPropertyChangedOverflowException
Exception thrown at run time when the NotifyPropertyChangedAttribute aspect encounters an excessively long chain of dependencies. This situation is typically caused by a cyclic dependency.
NotifyPropertyChangedServices
Provides utility methods for working with the NotifyPropertyChangedAttribute aspect.
NotifyPropertyChangingAdapter
Provides a unified adapter for the different variants of the INotifyPropertyChanging interface.
ParentAttribute
Custom attribute that, when applied to a field or automatic property, specifies that this field or property should be automatically set to the parent of the instance of the declaring type, whenever this instance is attached as a child to another object.
PropertyPath
Represents an immutable property path. All components are interned.
PropertyPath.Serializer
PureAttribute
Custom attribute that, when applied on a method, specifies that this method is a pure function, that is, the method always returns the same result given the same parameter values. In the context of NotifyPropertyChangedAttribute, it is also assumed that pure functions have only parameters of primitive types (int, string, and so on). The object parameter type is also accepted, but then it is assumed that instances passed are immutable, and changes to these objects will not be tracked.
ReferenceAttribute
Custom attribute that, when applied to a field or automatic property, specifies that this field or property is a simple reference, and is not involved in a parent-child relationship.
RelationshipInfo.Serializer
SafeForDependencyAnalysisAttribute
Custom attribute that, when applied on a property, prevents the dependency analysis algorithm used by the NotifyPropertyChangedAttribute aspect from emitting errors when it encounters constructs that it cannot analyze.
WeakEventAttribute
Aspect that, when applied to an event, prevents the target event from holding a strong reference to event handlers. Therefore, the aspect prevents the event from preventing clients from being garbage collected.
WeakEventAttribute.Serializer
Structs
RelationshipInfo
Describes the relationship between a parent and a child.
Interfaces
IAggregatable
Defines members (principally Parent and VisitChildren(ChildVisitor, ChildVisitorOptions, object)) that make it possible to consume parent-child relationships in an object tree.
IAggregatableCollection
Defines the non-generic semantics of an AggregatableCollection.
IAggregatableDependentAdvice<T>
Defines the semantics of advices that depend on the aggregatable dynamic advices. These advices must be able to react to attachment and detachment events.
IAttachable
Defines the setter methods of the IAggregatable interface.
IAttacher
Describes the semantics of a service through which a child IAggregatable object can attach itself to a parent object. This interface is typically implemented by the parent object by composition.
Enums
AggregatableClientAttribute.AspectInitializationStatus
Possible values for the InitializationStatus property.
ChildVisitorOptions
Options for the VisitChildren(ChildVisitor, ChildVisitorOptions, object) and VisitSelfAndDescendants(IAggregatable, DescendantVisitor, ChildVisitorOptions, object) methods.
DescendantVisitorStatus
The type of the return value of ChildVisitor. It determines how the visitor should continue enumerating other objects.
ObjectAccessLevel
Specifies the access levels that methods of execution scopes can require on an object.
RelationshipKind
Specifies the kinds of relationship between objects in an object graph.
WeakEventStrategy
Defines the behavior of a weak event.
Delegates
ChildVisitor
Encapsulates a method that is invoked by the VisitChildren(ChildVisitor, ChildVisitorOptions, object) method.
DescendantVisitor
Encapsulates a method that is invoked by the VisitSelfAndDescendants(IAggregatable, DescendantVisitor, ChildVisitorOptions, object) method.