Soenneker.Queue.Client
4.0.3078
Prefix Reserved
See the version list below for details.
dotnet add package Soenneker.Queue.Client --version 4.0.3078
NuGet\Install-Package Soenneker.Queue.Client -Version 4.0.3078
<PackageReference Include="Soenneker.Queue.Client" Version="4.0.3078" />
<PackageVersion Include="Soenneker.Queue.Client" Version="4.0.3078" />
<PackageReference Include="Soenneker.Queue.Client" />
paket add Soenneker.Queue.Client --version 4.0.3078
#r "nuget: Soenneker.Queue.Client, 4.0.3078"
#:package Soenneker.Queue.Client@4.0.3078
#addin nuget:?package=Soenneker.Queue.Client&version=4.0.3078
#tool nuget:?package=Soenneker.Queue.Client&version=4.0.3078
Soenneker.Queue.Client
Provides cached Azure Queue Storage QueueClient instances through dependency injection and creates a requested queue when it does not exist.
Install
dotnet add package Soenneker.Queue.Client
Configuration
{
"Azure": {
"Storage": {
"Queue": {
"ConnectionString": "<Azure Storage connection string>"
}
}
}
}
The connection string is read when QueueClientUtil is constructed. The credential must be allowed to inspect and create queues in addition to performing the application’s queue operations.
Registration
using Soenneker.Queue.Client.Registrars;
builder.Services.AddQueueClientUtilAsSingleton();
Singleton registration shares the per-queue client cache across the application. Scoped registration is also available:
builder.Services.AddQueueClientUtilAsScoped();
With scoped registration, each scope owns its queue-client lookup cache, while the underlying cached HTTP transport remains singleton-owned and survives disposal of individual scopes.
Both registration methods use TryAdd; an existing IQueueClientUtil registration is preserved.
Usage
using Azure.Storage.Queues;
using Soenneker.Queue.Client.Abstract;
public sealed class WorkPublisher(IQueueClientUtil queueClients)
{
public async ValueTask Publish(string json, CancellationToken cancellationToken)
{
QueueClient queue = await queueClients.Get("work-items", cancellationToken);
await queue.SendMessageAsync(json, cancellationToken);
}
}
Get normalizes the queue name to lowercase, creates the queue if necessary, and caches the resulting QueueClient for the lifetime of the utility. Azure Queue Storage naming rules still apply.
Disposing a scoped utility releases its own cached queue objects but does not evict the shared HTTP client. The DI container owns and disposes the singleton HTTP cache at application shutdown.
| Product | Versions 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. |
-
net10.0
- Azure.Storage.Queues (>= 12.27.1)
- Soenneker.Extensions.Configuration (>= 4.0.866)
- Soenneker.Utils.HttpClientCache (>= 4.0.2044)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.3081 | 0 | 8/31/2026 |
| 4.0.3080 | 0 | 8/31/2026 |
| 4.0.3079 | 0 | 8/31/2026 |
| 4.0.3078 | 26 | 8/30/2026 |
| 4.0.3077 | 31 | 8/30/2026 |
| 4.0.3076 | 28 | 8/30/2026 |
| 4.0.3075 | 33 | 8/30/2026 |
| 4.0.3074 | 36 | 8/30/2026 |
| 4.0.3073 | 38 | 8/30/2026 |
| 4.0.3072 | 40 | 8/29/2026 |
| 4.0.3071 | 39 | 8/29/2026 |
| 4.0.3070 | 35 | 8/29/2026 |
| 4.0.3069 | 41 | 8/29/2026 |
| 4.0.3068 | 61 | 8/26/2026 |
| 4.0.3067 | 75 | 8/26/2026 |
| 4.0.3066 | 70 | 8/26/2026 |
| 4.0.3065 | 75 | 8/25/2026 |
| 4.0.3064 | 88 | 8/22/2026 |
| 4.0.3063 | 85 | 8/21/2026 |
| 4.0.3062 | 83 | 8/21/2026 |