LoomKit.Requests.Abstractions 10.0.1

dotnet add package LoomKit.Requests.Abstractions --version 10.0.1
                    
NuGet\Install-Package LoomKit.Requests.Abstractions -Version 10.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LoomKit.Requests.Abstractions" Version="10.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LoomKit.Requests.Abstractions" Version="10.0.1" />
                    
Directory.Packages.props
<PackageReference Include="LoomKit.Requests.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LoomKit.Requests.Abstractions --version 10.0.1
                    
#r "nuget: LoomKit.Requests.Abstractions, 10.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LoomKit.Requests.Abstractions@10.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LoomKit.Requests.Abstractions&version=10.0.1
                    
Install as a Cake Addin
#tool nuget:?package=LoomKit.Requests.Abstractions&version=10.0.1
                    
Install as a Cake Tool

LoomKit.Requests.Abstractions

The interfaces and abstract base types behind LoomKit.Requests, split into their own lightweight package with no dependency on the concrete mediator implementation.

Status: early stage. The public API may still change between versions — pin a commit/tag if you depend on it.

Why a separate package

LoomKit.Requests ships the whole mediator: the default sender, its DI registration helpers, reflection-based pipeline caching, telemetry, etc. A project that only needs to define requests and handlers — typically a domain/DDD class library that shouldn't know how those requests get dispatched — doesn't need any of that.

This package holds only:

  • The marker/contract interfaces: IRequest, IRequest<TResponse>, IRequestHandler<TRequest>, IRequestHandler<TRequest, TResponse>, IRequestSender.
  • The abstract base types meant to be extended: RequestMiddleware<TRequest> / RequestMiddleware<TRequest, TResponse>, RequestSender<TOptions>, RequestSenderOptions, RequestSenderOptionsBuilder<TOptions>.

Reference this package from a layer that should only depend on shapes (a domain project defining commands/queries and handler interfaces, a library authoring a custom IRequestSender/RequestMiddleware, a contracts-only shared project). Reference LoomKit.Requests — which itself depends on this package — from your application/composition-root layer, where the concrete sender, its DI wiring, and the assembly-scanning handler registration actually get used.

Installation

dotnet add package LoomKit.Requests.Abstractions

Available on nuget.org — a package version is published automatically for every vX.Y.Z tag pushed to this repo.

If you're building the full mediator (sending requests, not just defining them), install LoomKit.Requests instead — it brings this package in transitively.

Contents

Type Kind Purpose
IRequest interface Marker for a fire-and-forget request (no response).
IRequest<TResponse> interface Marker for a request that returns a TResponse.
IRequestHandler<TRequest> / IRequestHandler<TRequest, TResponse> interface Implement one per request type — where the actual logic lives.
IRequestSender interface The entry point application code calls: SendAsync(...).
RequestMiddleware<TRequest> / RequestMiddleware<TRequest, TResponse> abstract class Base type for cross-cutting pipeline behavior around a handler.
RequestSender<TOptions> abstract class Base type for a custom IRequestSender implementation.
RequestSenderOptions abstract class Base type for a sender's configured options (service lifetime, middleware pipeline).
RequestSenderOptionsBuilder<TOptions> abstract class Base type for a fluent builder that produces a TOptions, with the open-generic middleware-type validation built in.

None of these types do anything by themselves — see LoomKit.Requests for the default, ready-to-use implementation (DefaultRequestSender, AddDefaultRequestSender, assembly-scanning handler registration, tracing, ...) and for usage examples.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on LoomKit.Requests.Abstractions:

Package Downloads
LoomKit.Requests

A lightweight mediator library for .NET: send requests to DI-resolved handlers with an optional middleware pipeline.

LoomKit.Requests.Crud

Generic CRUD base-handler classes for LoomKit.Requests: Create/GetById/List/UpdateById/DeleteById/Import/UpdateRelatedById request-handler triads with SQL-level field projection, a repository/unit-of-work contract, and auditing hooks.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.1 200 8/25/2026