Glossary¶
Every term Concepts and Architecture introduce, one line each, alphabetical. Cross-linked to the page that actually teaches the concept — this page defines, it doesn't explain.
Composer — the immutable, built-once entry point (Composer.Create()). Owns the resolution pipeline configuration and is reused across Create<T>()/CreateMany<T>() calls. See The Composition Model.
Composing / composition — the whole walk that produces a fully constructed object graph for a requested type, not just constructing one object — includes every nested dependency the resolution pipeline satisfies along the way. See The Composition Model.
Composition plan (ICompositionPlan<T>) — the source-generated construction code for a type, produced at compile time from its constructor and required members. See The Composition Model.
Composition profile (ICompositionProfile) — a reusable, named unit of configuration (registrations, rules, provider setup) applied via [Compose<TProfile>] or builder.AddProfile<TProfile>(). See Profiles.
Composition root — the type passed to Create<T>()/CreateMany<T>() — the top of the object graph being composed for one call.
CompositionBuilder — the configuration surface passed to Composer.Create(builder => ...); the object Register<T>, For<T>(), UseNSubstitute(), UseBogus(), and AddProfile<T>() are all called on. See Registrations and Rules.
CompositionDiagnostic — the structured detail behind a thrown CompositionException: the failed type, the request path, the provider attempts tried, the seed, and a remediation-oriented message. Available via exception.Diagnostic. See Troubleshooting: Common Errors.
CompositionException — thrown at runtime when no registration, rule, provider, or generated plan can satisfy a request. Always fail-fast — there is no partial/best-effort composed result. See Troubleshooting: Common Errors.
ICompositionContext — what a registration factory, type/member rule, or custom provider receives to resolve its own nested dependencies (context.Resolve<T>()) rather than constructing them by hand. See The Composition Model.
Deterministic seed — the root value (ulong) every composed value in one Create<T>()/CreateMany<T>() call is derived from — the same seed always produces the same composed values. See Determinism and Seeding.
Provider (ICompositionValueProvider) — a pluggable "maybe I can help" rule tried when no explicit registration or rule claims a value — the mechanism Compono.Bogus/Compono.NSubstitute use to add behavior without the core package knowing either exists. See Providers.
Registration (Register<T>) — an exact, type-keyed factory: "whenever anything needs a T, build it like this." See Registrations and Rules.
Resolution pipeline — the ordered sequence of stages Compono tries to satisfy a request: registrations/type-member rules, semantic providers, test-double providers, built-in value providers, then generated default construction. See The Composition Model.
Semantic provider — a provider that produces a meaningful value rather than an arbitrary one, e.g. Compono.Bogus's member-name-convention matching. See Providers.
[Shared] — Compono.XunitV3's attribute marking a [Compose] theory parameter whose composed value is reused by type for every other composed parameter/nested dependency in the same test row. See Shared Values.
Test-double provider — a provider that produces a test double instead of a real value, e.g. Compono.NSubstitute's substitute creation. See Providers.
Type/member rule (For<T>()) — a more targeted alternative to a registration: scopable down to a single member of a type, and lower precedence than a registration when both could apply. See Registrations and Rules.
Next¶
- Reference: Diagnostics — every
CMPcompile-time error code. - Concepts — the full mental-model walkthrough each of these terms is drawn from.