MetalamaAPI documentationAspect APIMetalama.​Framework.​Options
Open sandboxFocus

Metalama.Framework.Options Namespace

Classes

ApplyChangesAxis

Enumerates the axes along which two option layers can be merged by the ApplyChanges(Object, in ApplyChangesContext) method.

ApplyChangesContext

Context of an ApplyChanges(Object, in ApplyChangesContext) operation.

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.

IncrementalKeyedCollection<TKey, TValue>.Item

IncrementalObjectExtensions

Extensions of the IIncrementalObject interface.

OptionsInitializationContext

Context of the GetDefaultOptions(OptionsInitializationContext) method.

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.

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.

IHierarchicalOptionsProvider

A base interface for attributes that provide options.

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.