DandyRabbitMQ.Consumer 10.0.0

dotnet add package DandyRabbitMQ.Consumer --version 10.0.0
                    
NuGet\Install-Package DandyRabbitMQ.Consumer -Version 10.0.0
                    
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="DandyRabbitMQ.Consumer" Version="10.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DandyRabbitMQ.Consumer" Version="10.0.0" />
                    
Directory.Packages.props
<PackageReference Include="DandyRabbitMQ.Consumer" />
                    
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 DandyRabbitMQ.Consumer --version 10.0.0
                    
#r "nuget: DandyRabbitMQ.Consumer, 10.0.0"
                    
#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 DandyRabbitMQ.Consumer@10.0.0
                    
#: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=DandyRabbitMQ.Consumer&version=10.0.0
                    
Install as a Cake Addin
#tool nuget:?package=DandyRabbitMQ.Consumer&version=10.0.0
                    
Install as a Cake Tool

What is DandyRabbitMQ?

DandyRabbitMQ is a framework that offers comfort features and facades for the original client API RabbitMQ.Client by Broadcom. The goal is to make the use of RabbitMQ.Client significantly easier, avoid boilerplate and streamline communication.

Setup and packages

DandyRabbitMQ comes with multiple packages. Often frameworks with a large amount of packages can easily confuse. This section's goal is to make the dependency graph of the packages, and more importantly what packages you need in what case, more transparent. Also, this section is supposed to show you how to setup the framework in both consumer and/or producer applications.

Package dependencies

The following UML package diagram shows the dependency graph of all current packages.

  • DandyRabbitMQ.Core contains connectivity concerns, message abstractions and attributes for messages.
  • DandyRabbitMQ.Serialization contains abstractions for serializing a messages payload
  • DandyRabbitMQ.Serialization.SystemTextJson and DandyRabbitMQ.Serialization.NewtonsoftJson contain implementations of the payload serialization abstractions with respective serialization frameworks
  • DandyRabbitMQ.Consumer contains a message consumption worker and consumer abstractions for consuming messages
  • DandyRabbitMQ.Producer contains message production and dispatching

Package Dependency Graph

Packages for producers

Producer will need to reference only DandyRabbitMQ.Consumer and any of the serialization implementations, so either DandyRabbitMQ.Serialization.SystemTextJson or DandyRabbitMQ.Serialization.NewtonsoftJson.

This way DandyRabbitMQ.Core and thus DandyRabbitMQ.Serialization are both automatically included. Also, the producer configuration layer allows to configure both serialization and connectivity, so there is no need to add either to your IServiceCollection manually, that is done behind the scenes.

Setup

Only add the producer-specific extension for the IServiceCollection, since it give you access to all other configuration APIs of the framework. A setup could look like this:

builder.Services.AddDandyRabbitMQProducer(cfg =>
{
    cfg.Connectivity.ConnectToCluster("dev", "dev", [new Uri("localhost:5672"), new Uri("localhost:5673")], recoveryInterval: null);
    cfg.Connectivity.OnConnectionException((_, ex) => Console.WriteLine($"Exception occurred: {ex}"));
    cfg.Serialization.UseSystemTextJson();
    cfg.Declarations.SubscribeChannel("messages", "consumer-1", channel =>
    {
        channel.Queue.RoutingKeys = ["all"];
    });
    cfg.Messages.ScanInAssemblies(assemblies);
});

Packages for consumers

Producer will need to reference only DandyRabbitMQ.Producer and any of the serialization implementations, so either DandyRabbitMQ.Serialization.SystemTextJson or DandyRabbitMQ.Serialization.NewtonsoftJson.

This way DandyRabbitMQ.Core and thus DandyRabbitMQ.Serialization are both automatically included. Also, the producer configuration layer allows to configure both serialization and connectivity, so there is no need to add either to your IServiceCollection manually, that is done behind the scenes.

Setup

Only add the consumer-specific extension for the IServiceCollection, since it give you access to all other configuration APIs of the framework. A setup could look like this:

builder.Services.AddDandyRabbitMQConsumer(cfg =>
{
    cfg.Connectivity.ConnectToCluster("dev", "dev", [new Uri("localhost:5672"), new Uri("localhost:5673")], recoveryInterval: null);
    cfg.Connectivity.OnConnectionException((_, ex) => Console.WriteLine($"Exception occurred: {ex}"));
    cfg.Serialization.UseSystemTextJson();
    cfg.Declarations.SubscribeChannel("messages", "consumer-1", channel =>
    {
        channel.Queue.RoutingKeys = ["all"];
    });
    cfg.Messages.ScanInAssemblies(assemblies);
});

Use of AI

This section briefly outlines how AI was used for writing this framework. If an aspect if writing is not mentioned down below, it wasn't done using AI.

Unit tests

Unit tests have been partially written by AI. Specifically pay attention to the term written, since the test design was still man-made. The tests were planned with simple comments (such as // Create_SettingType_BasicPropertiesTypeNotOverwritten). Copilot was them prompted to implement the tests. Afterwards the tests were read manually and run manually. If needed adjustments were made.

Documentations

The XML-Documentation of the code was entirely generated by AI. Copilot was prompted iteratively to write the documentation and then asked to adjust until the result was satisfactory.

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

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
10.0.0 98 9/6/2026