Compono (Core)¶
The core composition engine — Composer, the resolution pipeline, and the source generator. Every other Compono package depends on this one; this one depends on nothing else in the ecosystem — the core package never references or knows about an integration package (see Design Principles, "modular architecture").
When to install¶
Always — it's the one package every Compono project needs, and it's a dependency of Compono.XunitV3/Compono.NSubstitute/Compono.Bogus, so dotnet add package will pull it in transitively even if you never add it directly.
What it gives you¶
Composer— the immutable entry point.Composer.Create()andComposer.Create(builder => ...)build a reusable composer once; see The Composition Model for the full picture.- The resolution pipeline — registrations, type/member rules, semantic and test-double providers (contributed by
Compono.Bogus/Compono.NSubstitutewhen installed), built-in value providers, and generated construction plans, tried in that order. See Providers and Registrations and Rules. - The source generator, embedded as a Roslyn analyzer inside
Compono.nupkg(analyzers/dotnet/cs, containingCompono.Generators.dll) — not a separate package or opt-in step. ReferencingComponois the only action needed to enable source generation. [Shared]-independent primitives —[Composable],ICompositionProfile,CompositionException/CompositionDiagnostic, and deterministic seeding (WithSeed, Determinism and Seeding).
What it deliberately doesn't do¶
Compono has no dependency on any test framework, mocking framework, or Bogus. It has no opinion on xUnit v3 vs. any other test framework, no built-in test-double support, and no realistic-fake-data generation — those are each their own package (Compono.XunitV3/Compono.NSubstitute/ Compono.Bogus), added independently so a project that only needs plain object composition never pulls in a test-framework or mocking-library dependency it doesn't use.
No other setup required¶
Adding the Compono PackageReference is the only step — no nuget.config entry beyond your normal NuGet feed, no MSBuild property to opt in, and no separate generator package to reference. See Installation for a verification snippet that confirms the generator is actually wired up.