Open sandboxFocus

Struct InitializationSlot

A strongly-typed bitmask representing a single aspect behavior slot for cross-layer coordination. Each aspect type that needs coordination allocates one slot at class initialization time.

Namespace: Metalama.Framework.RunTime.Initialization
Assembly: Metalama.Framework.dll
Syntax
public readonly struct InitializationSlot
Remarks

Slots are needed only by aspect types that address the telescoping constructor problem — i.e., aspects whose Initialize(InitializationContext) behavior must be skipped when a derived type guarantees it will handle the same concern.

A maximum of 32 slots can be allocated per Metalama.Framework.RunTime.Initialization.InitializationSlotFactory (or per AppDomain when using the default factory via Allocate()). In practice, very few aspect types need slots (likely fewer than half a dozen in a typical application).

Properties

Name Description
OnConstructed

Slot used by the engine's OnConstructed mechanism to coordinate multi-level inheritance. Derived constructors descend their context with this slot before calling the base constructor; base constructors guard the OnConstructed call with IsHandled(InitializationSlot) against this slot. Not intended for direct use by aspects.

Methods

Name Description
Allocate()

Allocates a new slot from the default global factory. Maximum 32 slots per AppDomain.

Operators

Name Description
operator |(InitializationSlot, InitializationSlot)

Combines two slots into one.