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).