Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes
3.8.1
Prefix Reserved
dotnet add package Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes --version 3.8.1
NuGet\Install-Package Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes -Version 3.8.1
<PackageReference Include="Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes" Version="3.8.1" />
<PackageVersion Include="Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes" Version="3.8.1" />
<PackageReference Include="Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes" />
paket add Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes --version 3.8.1
#r "nuget: Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes, 3.8.1"
#:package Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes@3.8.1
#addin nuget:?package=Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes&version=3.8.1
#tool nuget:?package=Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes&version=3.8.1
Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes
The attribute types for the Kanject SQS queue provider, and nothing else: no runtime logic, no generator. Use them to declare queue messages, typed and routed consumers, consumer dependencies and filters. The source generator in Kanject.Core.Queue.Provider.AwsSqs.Annotations reads them at compile time and writes the corresponding registration, send and Lambda-dispatch code.
Installation
dotnet add package Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes
Targets netstandard2.0, net7.0 and net8.0. The netstandard2.0 build is the one the generator itself can load.
Most projects never reference this package directly. It arrives transitively through Kanject.Core.Queue.Provider.AwsSqs → Kanject.Core.Queue.Provider.AwsSqs.Annotations. Reference it directly when you want the attributes without the generator, for example to keep message types in a shared contracts library.
The generator only processes types declared in the project that references it. [QueueMessage] types in a library without the generator produce no send helpers. A [QueueConsumer(Message = typeof(...))] in another project can still read their queue name.
Example
using Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes;
[QueueMessage("orders")]
public sealed class OrderPlaced
{
public string OrderId { get; set; } = string.Empty;
}
[QueueConsumer(Message = typeof(OrderPlaced))]
[QueueConsumerDependency(typeof(IFulfilmentService))]
public partial class OrderPlacedConsumer { /* override ConsumeAsync */ }
[RouteQueueConsumer(QueueName = "order-events", Message = typeof(OrderEvent))]
[QueueConsumerRoute("order.created")]
[QueueConsumerRoute("order.updated")]
public partial class OrderChangedHandler { /* override ConsumeAsync */ }
Attributes
All types are in the Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes namespace.
| Attribute | Applies to | Purpose |
|---|---|---|
[QueueMessage("queue-name")] |
class, record | Marks a message type and names its queue. The generator emits queue registration (Add…Queue / Create…Queue) and typed Enqueue…Async / Dequeue…Async / Acknowledge…Async helpers |
[QueueConsumer] (QueueName, QueueNamespace, Message) |
partial class | Declares a consumer. It becomes typed (Message set) or raw (Message omitted) |
[QueueConsumerDependency(typeof(TService), name)] |
consumer class, repeatable | Adds a constructor-injected dependency, exposed as a protected property. name optionally overrides the property name |
[QueueConsumerFilter("Property", new[] { "a", "b" })] |
[QueueConsumer] class |
Sends records whose JSON Property matches one of the values to this consumer, when several consumers share a queue. Not supported on route consumers |
[QueueConsumerFilter<TEnum>("Property", values, comparisonMode)] |
[QueueConsumer] class |
Enum form of the filter. Generic attributes require C# 11 or later |
EnumComparisonMode |
enum | Name compares enum member names (for JsonStringEnumConverter). Value (the default) compares numeric values |
[RouteQueueConsumer] (QueueName, QueueNamespace, Message) |
partial class | Declares a consumer for one or more routes on a shared queue |
[QueueConsumerRoute("route")] |
route consumer class, repeatable | A route the [RouteQueueConsumer] handles. At least one is required (analyzer TRF001) |
[EventQueue], [SubscribeToQueue], [EventHubQueueRouter] |
class | Hooks for event-hub integrations that this SDK doesn't ship. See the generator package for what each one does on its own |
The attributes carry no runtime behaviour. Applying them has no effect unless the generator package is referenced.
Related packages
| Package | Role | Availability |
|---|---|---|
Kanject.Core.Queue.Provider.AwsSqs.Annotations |
Source generator and analyzers that consume these attributes | nuget.org |
Kanject.Core.Queue.Provider.AwsSqs |
SQS runtime the generated code targets | nuget.org |
Kanject.Core.Queue.Provider.AwsSqs.Abstractions |
SQS contracts and Lambda handler helpers | nuget.org |
Kanject.Core.Queue.Abstractions |
Provider-neutral queue contracts, including [QueueName] and the scheduling attributes |
nuget.org |
License
Licensed under the Kanject Code Libraries License Agreement (KCLLA); the full text ships in this package as LICENSE.md. Organizations whose trailing-twelve-month gross revenue and total funding raised are each below US$250,000 may use it at no cost under the Free Tier. At or above either threshold a commercial license is required — contact commercial@kanjectbusiness.com.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Kanject.Core.Queue.Provider.AwsSqs.Annotations.Attributes:
| Package | Downloads |
|---|---|
|
Kanject.Core.Queue.Provider.AwsSqs.Abstractions
Kanject Core Queue AWS Sqs Abstractions |
|
|
Kanject.Core.Queue.Provider.AwsSqs.Annotations
Kanject Core Queue AWS Sqs Annotations |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.8.1 | 186 | 9/27/2026 |
| 3.8.0 | 129 | 9/27/2026 |
| 3.7.7 | 148 | 9/26/2026 |
| 3.7.6 | 174 | 9/7/2026 |
| 3.7.5 | 147 | 8/27/2026 |
| 3.7.4 | 154 | 8/22/2026 |
| 3.7.3 | 162 | 8/10/2026 |
| 3.7.2 | 163 | 8/9/2026 |
| 3.7.1 | 164 | 8/5/2026 |
| 3.7.0 | 162 | 8/5/2026 |
| 3.6.0 | 179 | 8/3/2026 |
| 3.5.4 | 246 | 7/18/2026 |
| 3.5.3 | 189 | 7/13/2026 |
| 3.5.2 | 159 | 7/11/2026 |
| 3.5.1 | 168 | 7/11/2026 |
| 3.5.0 | 210 | 7/9/2026 |
| 3.4.1 | 183 | 7/9/2026 |