AutoWire
Compile-time DI registration — decorate your services and AutoWire generates
AddAutoWireServices() at build time.
[Scoped] / [Singleton] / [Transient]dotnet add package AutoWire
Compile-time .NET source generators that eliminate boilerplate — zero reflection, AOT-safe, IDE-first.
One attribute. Generated at build time. No runtime overhead.
Purpose-built packages for dependency injection, mapping, validation, result handling, queries, and CQRS — all sharing the same compile-time, zero-reflection approach.
Compile-time DI registration — decorate your services and AutoWire generates
AddAutoWireServices() at build time.
[Scoped] / [Singleton] / [Transient]dotnet add package AutoWire
Compile-time object mapping — generates strongly-typed ToDto() extension methods.
No AutoMapper, no reflection.
[Map(typeof(OrderDto))]dotnet add package AutoMap.Generator
Compile-time FluentValidation wiring — discovers all AbstractValidator<T> subclasses
and generates AddValidators().
dotnet add package AutoValidate.Generator
Compile-time Result<T> monad — [TryWrap] generates Try*()
wrappers for every public method. Zero-ceremony error handling.
[TryWrap]dotnet add package AutoResult.Generator
Compile-time LINQ query specs — generates a strongly-typed Apply(IQueryable<T>)
method from a plain query class.
[QuerySpec(typeof(Product))]dotnet add package AutoQuery.Generator
Compile-time CQRS dispatcher — generates a strongly-typed IDispatcher from
[Handler] classes. No MediatR, no IRequest<T>.
[Handler]dotnet add package AutoDispatch.Generator
The Auto* ecosystem leans on source generators so your architecture stays explicit, traceable, and production-ready without reflection-heavy frameworks.
Registration, mapping, and dispatch happen at build time. Your app starts faster.
Navigate to generated code with F12. Roslyn diagnostics appear as squiggles. Lightbulb fixes available.
No reflection means full compatibility with .NET Native AOT, Blazor WebAssembly, and trimmed deployments.