Metalama.Framework.Options Namespace
Classes
HierarchicalOptionsAttribute
Custom attribute that, when applied to a class implementing the IHierarchicalOptions interface, specifies how the options are inherited.
IncrementalHashSet
Factory methods for the IncrementalHashSet<T> generic class.
IncrementalHashSet<T>
An immutable hash set where each class instance does not represent the full set but a modification of another set (possibly empty). This class implements the IIncrementalObject interface and can be easily used in the context of an IHierarchicalOptions<T>. The class can represent the Add(T), Remove(T) and Clear<T>() operations.
IncrementalKeyedCollection
Factory for the generic IncrementalKeyedCollection<TKey, TValue> class.
IncrementalKeyedCollection<TKey, TValue>
An immutable keyed collection where each class instance does not represent the full collection but a modification of another collection (possibly empty). This class implements the IIncrementalObject interface and can be easily used in the context of an IHierarchicalOptions<T>. The class can represent the AddOrApplyChanges(TValue), Remove(TKey) and Clear<TKey, TValue>() operations.
IncrementalObjectExtensions
Extensions of the IIncrementalObject interface.
OptionsInitializationContext
Context of the GetDefaultOptions(OptionsInitializationContext) method.
Structs
ApplyChangesContext
Context of an ApplyChanges(object, in ApplyChangesContext) operation.
IncrementalKeyedCollection<TKey, TValue>.Item
OptionsProviderContext
Context for the IHierarchicalOptionsProvider.GetOptions(in OptionsProviderContext) method.
Interfaces
IHierarchicalOptions
Base interface for hierarchical options. Hierarchical options are options exposed and consumed by aspects and fabrics. Users can typically set options at different levels of the code level: for the whole project, for a namespace, for a type, or for a member, as decided by the aspect author.
IHierarchicalOptionsManager
Provides read-only access to hierarchical options.
IHierarchicalOptionsProvider
A base interface for attributes that provide options.
IHierarchicalOptions<T>
An interface, derived from the non-generic IHierarchicalOptions, that means that the options can be set on the type of declarations specified by the generic parameter.
IIncrementalKeyedCollectionItem<TKey>
An item in a IncrementalKeyedCollection<TKey, TValue>.
IIncrementalObject
A base interface for all classes whose individual instances represent incremental changes that can be combined with the ApplyChanges(object, in ApplyChangesContext) method.
Enums
ApplyChangesAxis
Enumerates the axes along which two option layers can be merged by the ApplyChanges(object, in ApplyChangesContext) method.