Open sandboxFocus

Namespace Metalama.Framework.RunTime.Initialization

Classes

InitializableExtensions

Extension methods for IInitializable types, providing a post-initialization wrapper that returns the original object for use in expression contexts.

InitializationMetadata

Base class for metadata attached to an InitializationContext. Subclass to carry extension-specific context (e.g., deserialization framework info). Instances should be singletons where possible to avoid allocation.

Structs

InitializationContext

A context passed to constructors and Initialize(InitializationContext) methods to coordinate post-initialization behavior. Carries the caller's intent, aspect behavior slots, and optional metadata.

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.

Interfaces

IInitializable

Marks a type as having a post-initialization hook. The Initialize(InitializationContext) method is called after all constructors and object/collection initializers have completed, ensuring that all properties (including init-only and required members) are set before validation or derived value computation runs.

Enums

CallerIntent

Specifies the caller's intent regarding Initialize(InitializationContext) invocation. Values are mutually exclusive (not a flags enum).