diff --git a/.docfx/docfx.json b/.docfx/docfx.json
index d67eb59..468e4d7 100644
--- a/.docfx/docfx.json
+++ b/.docfx/docfx.json
@@ -37,9 +37,11 @@
"Savvyio.Extensions.DependencyInjection.EFCore.Domain/**.csproj",
"Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/**.csproj",
"Savvyio.Extensions.DependencyInjection.NATS/**.csproj",
+ "Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/**.csproj",
"Savvyio.Extensions.DependencyInjection.QueueStorage/**.csproj",
"Savvyio.Extensions.DependencyInjection.RabbitMQ/**.csproj",
"Savvyio.Extensions.DependencyInjection.SimpleQueueService/**.csproj",
+ "Savvyio.Extensions.DependencyInjection.Text.Json/**.csproj",
"Savvyio.Extensions.Dispatchers/**.csproj",
"Savvyio.Extensions.EFCore/**.csproj",
"Savvyio.Extensions.EFCore.Domain/**.csproj",
diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
new file mode 100644
index 0000000..5f76a15
--- /dev/null
+++ b/.github/copilot-instructions.md
@@ -0,0 +1,234 @@
+---
+description: 'Writing Unit Tests in Savvyio'
+applyTo: "**/*.{cs,csproj}"
+---
+
+# Writing Unit Tests in Savvyio
+
+This document provides instructions for writing unit tests in the Savvyio codebase. Please follow these guidelines to ensure consistency and maintainability.
+
+---
+
+## 1. Base Class
+
+**Always inherit from the `Test` base class** for all unit test classes.
+This ensures consistent setup, teardown, and output handling across all tests.
+
+```csharp
+using Codebelt.Extensions.Xunit;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace Your.Namespace
+{
+ public class YourTestClass : Test
+ {
+ public YourTestClass(ITestOutputHelper output) : base(output)
+ {
+ }
+
+ // Your tests here
+ }
+}
+```
+
+---
+
+## 2. Test Method Attributes
+
+- Use `[Fact]` for standard unit tests.
+- Use `[Theory]` with `[InlineData]` or other data sources for parameterized tests.
+
+---
+
+## 3. Naming Conventions
+
+- **Test classes**: End with `Test` (e.g., `CommandDispatcherTest`).
+- **Test methods**: Use descriptive names that state the expected behavior (e.g., `ShouldReturnTrue_WhenConditionIsMet`).
+
+---
+
+## 4. Assertions
+
+- Use `Assert` methods from xUnit for all assertions.
+- Prefer explicit and expressive assertions (e.g., `Assert.Equal`, `Assert.NotNull`, `Assert.Contains`).
+
+---
+
+## 5. File and Namespace Organization
+
+- Place test files in the appropriate test project and folder structure.
+- Use namespaces that mirror the source code structure.
+- The unit tests for the Savvyio.Foo assembly live in the Savvyio.Foo.Tests assembly.
+- The functional tests for the Savvyio.Foo assembly live in the Savvyio.Foo.FunctionalTests assembly.
+- Test class names end with Test and live in the same namespace as the class being tested, e.g., the unit tests for the Boo class that resides in the Savvyio.Foo assembly would be named BooTest and placed in the Savvyio.Foo namespace in the Savvyio.Foo.Tests assembly.
+- Modify the associated .csproj file to override the root namespace, e.g., Savvyio.Foo.
+
+---
+
+## 6. Example Test
+
+```csharp
+using Codebelt.Extensions.Xunit;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace Savvyio.Commands
+{
+ ///
+ /// Tests for the class.
+ ///
+ public class CommandTest : Test
+ {
+ public CommandTest(ITestOutputHelper output) : base(output)
+ {
+ }
+
+ [Fact]
+ public void DefaultCommand_Ensure_Initialization_Defaults()
+ {
+ var sut = new DefaultCommand();
+
+ Assert.IsAssignableFrom(sut);
+ Assert.IsAssignableFrom(sut);
+ Assert.IsAssignableFrom(sut);
+ Assert.IsAssignableFrom(sut);
+ Assert.IsAssignableFrom(sut);
+ Assert.Contains(sut.Metadata, pair => pair.Key == MetadataDictionary.CorrelationId);
+ }
+ }
+}
+```
+
+---
+
+## 7. Additional Guidelines
+
+- Keep tests focused and isolated.
+- Do not rely on external systems except for xUnit itself and Codebelt.Extensions.Xunit (and derived from this).
+- Ensure tests are deterministic and repeatable.
+
+---
+
+For further examples, refer to existing test files such as
+[`test/Savvyio.Commands.Tests/CommandDispatcherTest.cs`](test/Savvyio.Commands.Tests/CommandDispatcherTest.cs)
+and
+[`test/Savvyio.Commands.Tests/CommandTest.cs`](test/Savvyio.Commands.Tests/CommandTest.cs).
+
+---
+description: 'Writing XML documentation in Savvyio'
+applyTo: "**/*.cs"
+---
+
+# Writing XML documentation in Savvyio
+
+This document provides instructions for writing XML documentation.
+
+---
+
+## 1. Documentation Style
+
+- Use the same documentation style as found throughout the codebase.
+- Add XML doc comments to public and protected classes and methods where appropriate.
+- Example:
+
+```csharp
+using Cuemon.Extensions.DependencyInjection;
+using Cuemon.Extensions.Text.Json.Formatters;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using Cuemon;
+using Savvyio.Extensions.Text.Json;
+
+namespace Savvyio.Extensions.DependencyInjection.Text.Json
+{
+ ///
+ /// Extension methods for the interface.
+ ///
+ public static class ServiceCollectionExtensions
+ {
+ ///
+ /// Adds an implementation to the specified .
+ ///
+ /// The to extend.
+ /// The which may be configured. Default is optimized for messaging.
+ /// The which may be configured. Default is .
+ /// A reference to so that additional calls can be chained.
+ /// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
+ public static IServiceCollection AddJsonMarshaller(this IServiceCollection services, Action jsonSetup = null, Action serviceSetup = null)
+ {
+ Validator.ThrowIfNull(services);
+ return services
+ .AddMarshaller(serviceSetup)
+ .AddConfiguredOptions(jsonSetup ?? (o => o.Settings.WriteIndented = false));
+ }
+ }
+}
+
+
+using System;
+using Cuemon;
+using Cuemon.Configuration;
+
+namespace Savvyio.Extensions.NATS
+{
+ ///
+ /// Configuration options that is related to NATS.
+ ///
+ ///
+ public class NatsMessageOptions : IValidatableParameterObject
+ {
+ ///
+ /// Initializes a new instance of the class with default values.
+ ///
+ ///
+ /// The following table shows the initial property values for an instance of .
+ ///
+ ///
+ /// Property
+ /// Initial Value
+ ///
+ /// -
+ ///
+ /// new Uri("nats://127.0.0.1:4222")
+ ///
+ /// -
+ ///
+ /// null
+ ///
+ ///
+ ///
+ public NatsMessageOptions()
+ {
+ NatsUrl = new Uri("nats://127.0.0.1:4222");
+ }
+
+ ///
+ /// Gets or sets the URI of the NATS server.
+ ///
+ public Uri NatsUrl { get; set; }
+
+ ///
+ /// Gets or sets the subject to publish or subscribe to in NATS.
+ ///
+ public string Subject { get; set; }
+
+ ///
+ /// Validates the current options and throws an exception if the state is invalid.
+ ///
+ ///
+ /// is null or whitespace - or -
+ /// is null.
+ ///
+ public virtual void ValidateOptions()
+ {
+ Validator.ThrowIfInvalidState(NatsUrl == null);
+ Validator.ThrowIfInvalidState(string.IsNullOrWhiteSpace(Subject));
+ }
+ }
+}
+
+```
\ No newline at end of file
diff --git a/.nuget/Savvyio.App/PackageReleaseNotes.txt b/.nuget/Savvyio.App/PackageReleaseNotes.txt
index 00ae505..fffeb0d 100644
--- a/.nuget/Savvyio.App/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.App/PackageReleaseNotes.txt
@@ -1,3 +1,37 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# References
+- Savvyio
+- Savvyio.Commands
+- Savvyio.Commands.Messaging
+- Savvyio.Domain
+- Savvyio.Domain.EventSourcing
+- Savvyio.EventDriven
+- Savvyio.EventDriven.Messaging
+- Savvyio.Extensions.Dapper
+- Savvyio.Extensions.DependencyInjection
+- Savvyio.Extensions.DependencyInjection.Dapper
+- Savvyio.Extensions.DependencyInjection.Domain
+- Savvyio.Extensions.DependencyInjection.EFCore
+- Savvyio.Extensions.DependencyInjection.EFCore.Domain
+- Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing
+- Savvyio.Extensions.DependencyInjection.NATS
+- Savvyio.Extensions.DependencyInjection.QueueStorage
+- Savvyio.Extensions.DependencyInjection.RabbitMQ
+- Savvyio.Extensions.DependencyInjection.SimpleQueueService
+- Savvyio.Extensions.Dispatchers
+- Savvyio.Extensions.EFCore
+- Savvyio.Extensions.EFCore.Domain
+- Savvyio.Extensions.EFCore.Domain.EventSourcing
+- Savvyio.Extensions.NATS
+- Savvyio.Extensions.QueueStorage
+- Savvyio.Extensions.RabbitMQ
+- Savvyio.Extensions.SimpleQueueService
+- Savvyio.Extensions.Text.Json
+- Savvyio.Messaging
+- Savvyio.Queries
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.App/README.md b/.nuget/Savvyio.App/README.md
index ecf5979..7742ecd 100644
--- a/.nuget/Savvyio.App/README.md
+++ b/.nuget/Savvyio.App/README.md
@@ -1,6 +1,6 @@
# Savvyio.App
-Provides a complete and convenient set of API additions for building a DDD, CQRS and Event Sourcing enabled .NET application using Microsoft Dependency Injection, Microsoft Entity Framework Core and Dapper.
+Provides a complete and convenient set of API additions for building a DDD, CQRS and Event Sourcing enabled .NET application using Microsoft Dependency Injection, Microsoft Entity Framework Core, Dapper, JSON Marshaller, AWS SNS/SQS, Azure Queue Storage/Event Grid, RabbitMQ and NATS.
## About
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Commands.Messaging/PackageReleaseNotes.txt b/.nuget/Savvyio.Commands.Messaging/PackageReleaseNotes.txt
index df9a80a..b989a52 100644
--- a/.nuget/Savvyio.Commands.Messaging/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Commands.Messaging/PackageReleaseNotes.txt
@@ -1,6 +1,15 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.1.1
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Commands.Messaging/README.md b/.nuget/Savvyio.Commands.Messaging/README.md
index 51378c0..19a06a5 100644
--- a/.nuget/Savvyio.Commands.Messaging/README.md
+++ b/.nuget/Savvyio.Commands.Messaging/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Commands/PackageReleaseNotes.txt b/.nuget/Savvyio.Commands/PackageReleaseNotes.txt
index 86f8ed6..f4c2a1d 100644
--- a/.nuget/Savvyio.Commands/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Commands/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Commands/README.md b/.nuget/Savvyio.Commands/README.md
index 0748fb9..520c004 100644
--- a/.nuget/Savvyio.Commands/README.md
+++ b/.nuget/Savvyio.Commands/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Core/PackageReleaseNotes.txt b/.nuget/Savvyio.Core/PackageReleaseNotes.txt
index c81a815..3a91552 100644
--- a/.nuget/Savvyio.Core/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Core/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Core/README.md b/.nuget/Savvyio.Core/README.md
index a46a416..8155a8a 100644
--- a/.nuget/Savvyio.Core/README.md
+++ b/.nuget/Savvyio.Core/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Domain.EventSourcing/PackageReleaseNotes.txt b/.nuget/Savvyio.Domain.EventSourcing/PackageReleaseNotes.txt
index 95e6a8a..5528494 100644
--- a/.nuget/Savvyio.Domain.EventSourcing/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Domain.EventSourcing/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Domain.EventSourcing/README.md b/.nuget/Savvyio.Domain.EventSourcing/README.md
index 68a741c..88629d6 100644
--- a/.nuget/Savvyio.Domain.EventSourcing/README.md
+++ b/.nuget/Savvyio.Domain.EventSourcing/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Domain/PackageReleaseNotes.txt b/.nuget/Savvyio.Domain/PackageReleaseNotes.txt
index 16f26d6..d95dab9 100644
--- a/.nuget/Savvyio.Domain/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Domain/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Domain/README.md b/.nuget/Savvyio.Domain/README.md
index 2ef164c..df3dd38 100644
--- a/.nuget/Savvyio.Domain/README.md
+++ b/.nuget/Savvyio.Domain/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.EventDriven.Messaging/PackageReleaseNotes.txt b/.nuget/Savvyio.EventDriven.Messaging/PackageReleaseNotes.txt
index 53f9537..960ab63 100644
--- a/.nuget/Savvyio.EventDriven.Messaging/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.EventDriven.Messaging/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.EventDriven.Messaging/README.md b/.nuget/Savvyio.EventDriven.Messaging/README.md
index af0046f..3e664b8 100644
--- a/.nuget/Savvyio.EventDriven.Messaging/README.md
+++ b/.nuget/Savvyio.EventDriven.Messaging/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.EventDriven/PackageReleaseNotes.txt b/.nuget/Savvyio.EventDriven/PackageReleaseNotes.txt
index e027fc1..c877e2d 100644
--- a/.nuget/Savvyio.EventDriven/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.EventDriven/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.EventDriven/README.md b/.nuget/Savvyio.EventDriven/README.md
index 2cdf257..9b85834 100644
--- a/.nuget/Savvyio.EventDriven/README.md
+++ b/.nuget/Savvyio.EventDriven/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.Dapper/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.Dapper/PackageReleaseNotes.txt
index bfc2f73..866ec5c 100644
--- a/.nuget/Savvyio.Extensions.Dapper/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.Dapper/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.Dapper/README.md b/.nuget/Savvyio.Extensions.Dapper/README.md
index 1f3a372..f69cf36 100644
--- a/.nuget/Savvyio.Extensions.Dapper/README.md
+++ b/.nuget/Savvyio.Extensions.Dapper/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DapperExtensions/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DapperExtensions/PackageReleaseNotes.txt
index 5e5ede2..d437b6c 100644
--- a/.nuget/Savvyio.Extensions.DapperExtensions/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DapperExtensions/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DapperExtensions/README.md b/.nuget/Savvyio.Extensions.DapperExtensions/README.md
index a07a040..1e295c5 100644
--- a/.nuget/Savvyio.Extensions.DapperExtensions/README.md
+++ b/.nuget/Savvyio.Extensions.DapperExtensions/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Dapper/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.Dapper/PackageReleaseNotes.txt
index 6555a89..cf3d53d 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.Dapper/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.Dapper/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Dapper/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.Dapper/README.md
index cf5da7d..057e0a3 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.Dapper/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.Dapper/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.DapperExtensions/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.DapperExtensions/PackageReleaseNotes.txt
index d377d9f..92b9cbc 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.DapperExtensions/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.DapperExtensions/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.DapperExtensions/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.DapperExtensions/README.md
index 9ca1dab..0bbb812 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.DapperExtensions/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.DapperExtensions/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Domain/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.Domain/PackageReleaseNotes.txt
index 61e8168..76f7300 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.Domain/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.Domain/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Domain/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.Domain/README.md
index ca771e1..e6e6d0c 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.Domain/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.Domain/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/PackageReleaseNotes.txt
index cddb586..233ffab 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/README.md
index a72d4ba..953722f 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain/PackageReleaseNotes.txt
index c02b6bb..f74d838 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain/README.md
index f0ca5c5..03f3b3e 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore.Domain/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore/PackageReleaseNotes.txt
index b19526a..42a9a86 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore/README.md
index 1c3211a..e3897ec 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.EFCore/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.EFCore/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.NATS/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.NATS/PackageReleaseNotes.txt
index fd2597b..f8257d2 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.NATS/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.NATS/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.NATS/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.NATS/README.md
index 917ea19..522ccfe 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.NATS/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.NATS/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/PackageReleaseNotes.txt
new file mode 100644
index 0000000..0f2f6a7
--- /dev/null
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/PackageReleaseNotes.txt
@@ -0,0 +1,6 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# New Features
+- ADDED ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection.Newtonsoft.Json namespace that consist of extension methods for the IServiceCollection interface: AddNewtonsoftJsonMarshaller
+Β
\ No newline at end of file
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/README.md
new file mode 100644
index 0000000..e9d8b79
--- /dev/null
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/README.md
@@ -0,0 +1,49 @@
+# Savvyio.Extensions.DependencyInjection.Newtonsoft.Json
+
+Extend the Savvy I/O support for Microsoft Dependency Injection with Newtonsoft JSON implementations.
+
+## About
+
+An open-source project (MIT license) that provides a SOLID and clean .NET class library for writing DDD, CQRS and Event Sourcing applications.
+
+
+
+It is, by heart, free, flexible and built to extend and boost your agile codebelt.
+
+## Related Packages
+
+* [Savvyio.App](https://www.nuget.org/packages/Savvyio.App/) π
+* [Savvyio.Commands](https://www.nuget.org/packages/Savvyio.Commands/) π¦
+* [Savvyio.Commands.Messaging](https://www.nuget.org/packages/Savvyio.Commands.Messaging/) π¦
+* [Savvyio.Core](https://www.nuget.org/packages/Savvyio.Core/) π¦
+* [Savvyio.Domain](https://www.nuget.org/packages/Savvyio.Domain/) π¦
+* [Savvyio.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Domain.EventSourcing/) π¦
+* [Savvyio.EventDriven](https://www.nuget.org/packages/Savvyio.EventDriven/) π¦
+* [Savvyio.EventDriven.Messaging](https://www.nuget.org/packages/Savvyio.EventDriven.Messaging/) π¦
+* [Savvyio.Extensions.Dapper](https://www.nuget.org/packages/Savvyio.Extensions.Dapper/) π¦
+* [Savvyio.Extensions.DapperExtensions](https://www.nuget.org/packages/Savvyio.Extensions.DapperExtensions/) π¦
+* [Savvyio.Extensions.DependencyInjection](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection/) π¦
+* [Savvyio.Extensions.DependencyInjection.Dapper](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Dapper/) π¦
+* [Savvyio.Extensions.DependencyInjection.DapperExtensions](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.DapperExtensions/) π¦
+* [Savvyio.Extensions.DependencyInjection.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Domain/) π¦
+* [Savvyio.Extensions.DependencyInjection.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore/) π¦
+* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
+* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
+* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
+* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
+* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
+* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
+* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
+* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
+* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
+* [Savvyio.Extensions.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain.EventSourcing/) π¦
+* [Savvyio.Extensions.NATS](https://www.nuget.org/packages/Savvyio.Extensions.NATS/) π¦
+* [Savvyio.Extensions.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.Newtonsoft.Json/) π¦
+* [Savvyio.Extensions.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.QueueStorage/) π¦
+* [Savvyio.Extensions.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.RabbitMQ/) π¦
+* [Savvyio.Extensions.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.SimpleQueueService/) π¦
+* [Savvyio.Extensions.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.Text.Json/) π¦
+* [Savvyio.Messaging](https://www.nuget.org/packages/Savvyio.Messaging/) π¦
+* [Savvyio.Queries](https://www.nuget.org/packages/Savvyio.Queries/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/icon.png b/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/icon.png
new file mode 100644
index 0000000..39600ea
Binary files /dev/null and b/.nuget/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/icon.png differ
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.QueueStorage/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.QueueStorage/PackageReleaseNotes.txt
index 1889089..d831913 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.QueueStorage/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.QueueStorage/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.QueueStorage/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.QueueStorage/README.md
index dfdfc8f..b9e61a3 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.QueueStorage/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.QueueStorage/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.RabbitMQ/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.RabbitMQ/PackageReleaseNotes.txt
index e17efae..039a8ad 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.RabbitMQ/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.RabbitMQ/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.RabbitMQ/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.RabbitMQ/README.md
index 0abbd98..b2988ce 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.RabbitMQ/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.RabbitMQ/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.SimpleQueueService/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.SimpleQueueService/PackageReleaseNotes.txt
index e43fb70..571e4fd 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.SimpleQueueService/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.SimpleQueueService/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.SimpleQueueService/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.SimpleQueueService/README.md
index 3ada28a..a7d81f6 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection.SimpleQueueService/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.SimpleQueueService/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/PackageReleaseNotes.txt
new file mode 100644
index 0000000..6b33faa
--- /dev/null
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/PackageReleaseNotes.txt
@@ -0,0 +1,6 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# New Features
+- ADDED ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection.Text.Json namespace that consist of extension methods for the IServiceCollection interface: AddJsonMarshaller
+Β
\ No newline at end of file
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/README.md b/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/README.md
new file mode 100644
index 0000000..3d24cb2
--- /dev/null
+++ b/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/README.md
@@ -0,0 +1,49 @@
+# Savvyio.Extensions.DependencyInjection.Text.Json
+
+Extend the Savvy I/O support for Microsoft Dependency Injection with official built-in JSON implementations.
+
+## About
+
+An open-source project (MIT license) that provides a SOLID and clean .NET class library for writing DDD, CQRS and Event Sourcing applications.
+
+
+
+It is, by heart, free, flexible and built to extend and boost your agile codebelt.
+
+## Related Packages
+
+* [Savvyio.App](https://www.nuget.org/packages/Savvyio.App/) π
+* [Savvyio.Commands](https://www.nuget.org/packages/Savvyio.Commands/) π¦
+* [Savvyio.Commands.Messaging](https://www.nuget.org/packages/Savvyio.Commands.Messaging/) π¦
+* [Savvyio.Core](https://www.nuget.org/packages/Savvyio.Core/) π¦
+* [Savvyio.Domain](https://www.nuget.org/packages/Savvyio.Domain/) π¦
+* [Savvyio.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Domain.EventSourcing/) π¦
+* [Savvyio.EventDriven](https://www.nuget.org/packages/Savvyio.EventDriven/) π¦
+* [Savvyio.EventDriven.Messaging](https://www.nuget.org/packages/Savvyio.EventDriven.Messaging/) π¦
+* [Savvyio.Extensions.Dapper](https://www.nuget.org/packages/Savvyio.Extensions.Dapper/) π¦
+* [Savvyio.Extensions.DapperExtensions](https://www.nuget.org/packages/Savvyio.Extensions.DapperExtensions/) π¦
+* [Savvyio.Extensions.DependencyInjection](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection/) π¦
+* [Savvyio.Extensions.DependencyInjection.Dapper](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Dapper/) π¦
+* [Savvyio.Extensions.DependencyInjection.DapperExtensions](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.DapperExtensions/) π¦
+* [Savvyio.Extensions.DependencyInjection.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Domain/) π¦
+* [Savvyio.Extensions.DependencyInjection.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore/) π¦
+* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
+* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
+* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
+* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
+* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
+* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
+* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
+* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
+* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
+* [Savvyio.Extensions.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain.EventSourcing/) π¦
+* [Savvyio.Extensions.NATS](https://www.nuget.org/packages/Savvyio.Extensions.NATS/) π¦
+* [Savvyio.Extensions.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.Newtonsoft.Json/) π¦
+* [Savvyio.Extensions.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.QueueStorage/) π¦
+* [Savvyio.Extensions.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.RabbitMQ/) π¦
+* [Savvyio.Extensions.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.SimpleQueueService/) π¦
+* [Savvyio.Extensions.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.Text.Json/) π¦
+* [Savvyio.Messaging](https://www.nuget.org/packages/Savvyio.Messaging/) π¦
+* [Savvyio.Queries](https://www.nuget.org/packages/Savvyio.Queries/) π¦
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/icon.png b/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/icon.png
new file mode 100644
index 0000000..39600ea
Binary files /dev/null and b/.nuget/Savvyio.Extensions.DependencyInjection.Text.Json/icon.png differ
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.DependencyInjection/PackageReleaseNotes.txt
index 06d0217..003bd75 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.DependencyInjection/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.DependencyInjection/README.md b/.nuget/Savvyio.Extensions.DependencyInjection/README.md
index 5883830..991e7e7 100644
--- a/.nuget/Savvyio.Extensions.DependencyInjection/README.md
+++ b/.nuget/Savvyio.Extensions.DependencyInjection/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.Dispatchers/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.Dispatchers/PackageReleaseNotes.txt
index b7ecd7e..468e3fd 100644
--- a/.nuget/Savvyio.Extensions.Dispatchers/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.Dispatchers/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.Dispatchers/README.md b/.nuget/Savvyio.Extensions.Dispatchers/README.md
index ba058d7..948c17b 100644
--- a/.nuget/Savvyio.Extensions.Dispatchers/README.md
+++ b/.nuget/Savvyio.Extensions.Dispatchers/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.EFCore.Domain.EventSourcing/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.EFCore.Domain.EventSourcing/PackageReleaseNotes.txt
index fac9ad4..e944b53 100644
--- a/.nuget/Savvyio.Extensions.EFCore.Domain.EventSourcing/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.EFCore.Domain.EventSourcing/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.EFCore.Domain.EventSourcing/README.md b/.nuget/Savvyio.Extensions.EFCore.Domain.EventSourcing/README.md
index 6a2e97d..18e1a94 100644
--- a/.nuget/Savvyio.Extensions.EFCore.Domain.EventSourcing/README.md
+++ b/.nuget/Savvyio.Extensions.EFCore.Domain.EventSourcing/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.EFCore.Domain/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.EFCore.Domain/PackageReleaseNotes.txt
index 872341d..b266608 100644
--- a/.nuget/Savvyio.Extensions.EFCore.Domain/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.EFCore.Domain/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.EFCore.Domain/README.md b/.nuget/Savvyio.Extensions.EFCore.Domain/README.md
index 228a9ca..caef700 100644
--- a/.nuget/Savvyio.Extensions.EFCore.Domain/README.md
+++ b/.nuget/Savvyio.Extensions.EFCore.Domain/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.EFCore/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.EFCore/PackageReleaseNotes.txt
index b4aba2a..67aba2d 100644
--- a/.nuget/Savvyio.Extensions.EFCore/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.EFCore/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.EFCore/README.md b/.nuget/Savvyio.Extensions.EFCore/README.md
index a935ed4..7333458 100644
--- a/.nuget/Savvyio.Extensions.EFCore/README.md
+++ b/.nuget/Savvyio.Extensions.EFCore/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.NATS/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.NATS/PackageReleaseNotes.txt
index ab4741a..0195e0b 100644
--- a/.nuget/Savvyio.Extensions.NATS/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.NATS/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.NATS/README.md b/.nuget/Savvyio.Extensions.NATS/README.md
index b23baea..be363d6 100644
--- a/.nuget/Savvyio.Extensions.NATS/README.md
+++ b/.nuget/Savvyio.Extensions.NATS/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.Newtonsoft.Json/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.Newtonsoft.Json/PackageReleaseNotes.txt
index 625a751..ca816a7 100644
--- a/.nuget/Savvyio.Extensions.Newtonsoft.Json/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.Newtonsoft.Json/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.Newtonsoft.Json/README.md b/.nuget/Savvyio.Extensions.Newtonsoft.Json/README.md
index 83c631c..abb091e 100644
--- a/.nuget/Savvyio.Extensions.Newtonsoft.Json/README.md
+++ b/.nuget/Savvyio.Extensions.Newtonsoft.Json/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.QueueStorage/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.QueueStorage/PackageReleaseNotes.txt
index 9f6822f..6b77c43 100644
--- a/.nuget/Savvyio.Extensions.QueueStorage/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.QueueStorage/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.QueueStorage/README.md b/.nuget/Savvyio.Extensions.QueueStorage/README.md
index a77deda..62b1551 100644
--- a/.nuget/Savvyio.Extensions.QueueStorage/README.md
+++ b/.nuget/Savvyio.Extensions.QueueStorage/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.RabbitMQ/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.RabbitMQ/PackageReleaseNotes.txt
index 993c311..b847d32 100644
--- a/.nuget/Savvyio.Extensions.RabbitMQ/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.RabbitMQ/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.RabbitMQ/README.md b/.nuget/Savvyio.Extensions.RabbitMQ/README.md
index 333208b..4651868 100644
--- a/.nuget/Savvyio.Extensions.RabbitMQ/README.md
+++ b/.nuget/Savvyio.Extensions.RabbitMQ/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.SimpleQueueService/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.SimpleQueueService/PackageReleaseNotes.txt
index 89486f8..70d751f 100644
--- a/.nuget/Savvyio.Extensions.SimpleQueueService/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.SimpleQueueService/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.SimpleQueueService/README.md b/.nuget/Savvyio.Extensions.SimpleQueueService/README.md
index 2235152..15fa742 100644
--- a/.nuget/Savvyio.Extensions.SimpleQueueService/README.md
+++ b/.nuget/Savvyio.Extensions.SimpleQueueService/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Extensions.Text.Json/PackageReleaseNotes.txt b/.nuget/Savvyio.Extensions.Text.Json/PackageReleaseNotes.txt
index e7a15bb..083e141 100644
--- a/.nuget/Savvyio.Extensions.Text.Json/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Extensions.Text.Json/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Extensions.Text.Json/README.md b/.nuget/Savvyio.Extensions.Text.Json/README.md
index c6519d7..2c16704 100644
--- a/.nuget/Savvyio.Extensions.Text.Json/README.md
+++ b/.nuget/Savvyio.Extensions.Text.Json/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Messaging/PackageReleaseNotes.txt b/.nuget/Savvyio.Messaging/PackageReleaseNotes.txt
index d968ab5..b35006e 100644
--- a/.nuget/Savvyio.Messaging/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Messaging/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Messaging/README.md b/.nuget/Savvyio.Messaging/README.md
index a3e4036..7d678e2 100644
--- a/.nuget/Savvyio.Messaging/README.md
+++ b/.nuget/Savvyio.Messaging/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/.nuget/Savvyio.Queries/PackageReleaseNotes.txt b/.nuget/Savvyio.Queries/PackageReleaseNotes.txt
index a3ab997..89aeb7b 100644
--- a/.nuget/Savvyio.Queries/PackageReleaseNotes.txt
+++ b/.nuget/Savvyio.Queries/PackageReleaseNotes.txt
@@ -1,3 +1,9 @@
+Version: 4.3.0
+Availability: .NET 9 and .NET 8
+Β
+# ALM
+- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
+Β
Version: 4.2.0
Availability: .NET 9 and .NET 8
Β
diff --git a/.nuget/Savvyio.Queries/README.md b/.nuget/Savvyio.Queries/README.md
index 1299546..310bfa8 100644
--- a/.nuget/Savvyio.Queries/README.md
+++ b/.nuget/Savvyio.Queries/README.md
@@ -30,9 +30,11 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) π¦
* [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) π¦
* [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) π¦
+* [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) π¦
* [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) π¦
* [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) π¦
* [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) π¦
+* [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) π¦
* [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) π¦
* [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) π¦
* [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) π¦
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9750e51..7a54196 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,11 +4,27 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
For more details, please refer to `PackageReleaseNotes.txt` on a per assembly basis in the `.nuget` folder.
+## [4.3.0] - 2025-08-30
+
+This is a feature release that extends the two projects, `Savvyio.Extensions.Newtonsoft.Json` and `Savvyio.Extensions.Text.Json` with support for Microsoft Dependency Injection.
+
+Also includes a service update that focuses on bumping package dependencies.
+
+### Added
+
+#### Savvyio.Extensions.DependencyInjection.Newtonsoft.Json
+
+- ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection.Newtonsoft.Json namespace that consist of extension methods for the IServiceCollection interface: AddNewtonsoftJsonMarshaller
+
+#### Savvyio.Extensions.DependencyInjection.Text.Json
+
+- ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection.Text.Json namespace that consist of extension methods for the IServiceCollection interface: AddJsonMarshaller
+
## [4.2.0] - 2025-08-26
This is a feature release that offers support for NATS as a message broker in the context of NATS Work-Queue Stream (Command) and NATS Core Publish-Subscribe (Integration Event).
-Also includes a service update that primarily focuses on bumping package dependencies.
+Also includes a service update that focuses on bumping package dependencies.
### Added
diff --git a/Directory.Packages.props b/Directory.Packages.props
index f1cc3b4..7a0bb79 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -4,8 +4,8 @@
true
-
-
+
+
diff --git a/README.md b/README.md
index 5e231e1..40e791e 100644
--- a/README.md
+++ b/README.md
@@ -88,9 +88,11 @@ Provides a focused API for building various types of modern .NET applications su
| [Savvyio.Extensions.DependencyInjection.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain/) |  |  |  |
| [Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/) |  |  |  |
| [Savvyio.Extensions.DependencyInjection.NATS](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.NATS/) |  |  |  |
+| [Savvyio.Extensions.DependencyInjection.Newtonsoft.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/) |  |  |  |
| [Savvyio.Extensions.DependencyInjection.QueueStorage](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.QueueStorage/) |  |  |  |
| [Savvyio.Extensions.DependencyInjection.RabbitMQ](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.RabbitMQ/) |  |  |  |
| [Savvyio.Extensions.DependencyInjection.SimpleQueueService](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.SimpleQueueService/) |  |  |  |
+| [Savvyio.Extensions.DependencyInjection.Text.Json](https://www.nuget.org/packages/Savvyio.Extensions.DependencyInjection.Text.Json/) |  |  |  |
| [Savvyio.Extensions.Dispatchers](https://www.nuget.org/packages/Savvyio.Extensions.Dispatchers/) |  |  |  |
| [Savvyio.Extensions.EFCore](https://www.nuget.org/packages/Savvyio.Extensions.EFCore/) |  |  |  |
| [Savvyio.Extensions.EFCore.Domain](https://www.nuget.org/packages/Savvyio.Extensions.EFCore.Domain/) |  |  |  |
@@ -106,7 +108,7 @@ Provides a focused API for building various types of modern .NET applications su
### π Productivity Packages
-Provides a convenient set of default API additions for building complete DDD, CQRS and Event Sourcing enabled .NET applications using Microsoft Dependency Injection, Microsoft Entity Framework Core, Dapper, AWS SNS/SQS, Azure Queue Storage/Event Grid, RabbitMQ and NATS.
+Provides a convenient set of default API additions for building complete DDD, CQRS and Event Sourcing enabled .NET applications using Microsoft Dependency Injection, Microsoft Entity Framework Core, Dapper, JSON Marshaller, AWS SNS/SQS, Azure Queue Storage/Event Grid, RabbitMQ and NATS.
|Package|vNext|Stable|Downloads|
|:--|:-:|:-:|:-:|
diff --git a/Savvyio.sln b/Savvyio.sln
index be39590..d683663 100644
--- a/Savvyio.sln
+++ b/Savvyio.sln
@@ -139,6 +139,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Savvyio.Extensions.Dependen
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Savvyio.Extensions.DependencyInjection.NATS.Tests", "test\Savvyio.Extensions.DependencyInjection.NATS.Tests\Savvyio.Extensions.DependencyInjection.NATS.Tests.csproj", "{B38EFDB0-58A2-4C6F-B46E-9B5F01E23F15}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Savvyio.Extensions.DependencyInjection.Text.Json", "src\Savvyio.Extensions.DependencyInjection.Text.Json\Savvyio.Extensions.DependencyInjection.Text.Json.csproj", "{12A785C8-CD84-4D45-B761-C1D62AF00D8B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Savvyio.Extensions.DependencyInjection.Newtonsoft.Json", "src\Savvyio.Extensions.DependencyInjection.Newtonsoft.Json\Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.csproj", "{E65266EF-BADC-4C6B-AACE-EF8444A83C4A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests", "test\Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests\Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests.csproj", "{2110D4F4-7F43-4ED6-84A4-98BD75FC709C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Savvyio.Extensions.DependencyInjection.Text.Json.Tests", "test\Savvyio.Extensions.DependencyInjection.Text.Json.Tests\Savvyio.Extensions.DependencyInjection.Text.Json.Tests.csproj", "{5F23B8AA-1230-48FF-BC80-221F2E17D29C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -409,6 +417,22 @@ Global
{B38EFDB0-58A2-4C6F-B46E-9B5F01E23F15}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B38EFDB0-58A2-4C6F-B46E-9B5F01E23F15}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B38EFDB0-58A2-4C6F-B46E-9B5F01E23F15}.Release|Any CPU.Build.0 = Release|Any CPU
+ {12A785C8-CD84-4D45-B761-C1D62AF00D8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {12A785C8-CD84-4D45-B761-C1D62AF00D8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12A785C8-CD84-4D45-B761-C1D62AF00D8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {12A785C8-CD84-4D45-B761-C1D62AF00D8B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E65266EF-BADC-4C6B-AACE-EF8444A83C4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E65266EF-BADC-4C6B-AACE-EF8444A83C4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E65266EF-BADC-4C6B-AACE-EF8444A83C4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E65266EF-BADC-4C6B-AACE-EF8444A83C4A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2110D4F4-7F43-4ED6-84A4-98BD75FC709C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2110D4F4-7F43-4ED6-84A4-98BD75FC709C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2110D4F4-7F43-4ED6-84A4-98BD75FC709C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2110D4F4-7F43-4ED6-84A4-98BD75FC709C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5F23B8AA-1230-48FF-BC80-221F2E17D29C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5F23B8AA-1230-48FF-BC80-221F2E17D29C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5F23B8AA-1230-48FF-BC80-221F2E17D29C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5F23B8AA-1230-48FF-BC80-221F2E17D29C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -480,6 +504,10 @@ Global
{030BB5FC-BB8B-4349-B8BD-93DBFE887D18} = {407762FB-26D8-435F-AE16-C76791EC9FEC}
{D4E7613F-FBF6-451A-AEA4-D46907CC9C78} = {0E75F0C5-DBEB-4B6D-AC52-98656CA79A7D}
{B38EFDB0-58A2-4C6F-B46E-9B5F01E23F15} = {407762FB-26D8-435F-AE16-C76791EC9FEC}
+ {12A785C8-CD84-4D45-B761-C1D62AF00D8B} = {0E75F0C5-DBEB-4B6D-AC52-98656CA79A7D}
+ {E65266EF-BADC-4C6B-AACE-EF8444A83C4A} = {0E75F0C5-DBEB-4B6D-AC52-98656CA79A7D}
+ {2110D4F4-7F43-4ED6-84A4-98BD75FC709C} = {407762FB-26D8-435F-AE16-C76791EC9FEC}
+ {5F23B8AA-1230-48FF-BC80-221F2E17D29C} = {407762FB-26D8-435F-AE16-C76791EC9FEC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D8DDAD51-08E6-42B5-970B-2DC88D44297B}
diff --git a/src/Savvyio.App/Savvyio.App.csproj b/src/Savvyio.App/Savvyio.App.csproj
index 09102a4..4eaf40d 100644
--- a/src/Savvyio.App/Savvyio.App.csproj
+++ b/src/Savvyio.App/Savvyio.App.csproj
@@ -27,6 +27,7 @@
+
diff --git a/src/Savvyio.Extensions.DependencyInjection.Dapper/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.Dapper/ServiceCollectionExtensions.cs
index 0d51b5b..853d00b 100644
--- a/src/Savvyio.Extensions.DependencyInjection.Dapper/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.Dapper/ServiceCollectionExtensions.cs
@@ -1,4 +1,5 @@
ο»Ώusing System;
+using Cuemon;
using Cuemon.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Savvyio.Extensions.Dapper;
@@ -19,8 +20,12 @@ public static class ServiceCollectionExtensions
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddDapperDataSource(this IServiceCollection services, Action dataSourceSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddDapperDataSource(serviceSetup)
.AddConfiguredOptions(dataSourceSetup);
@@ -34,8 +39,12 @@ public static IServiceCollection AddDapperDataSource(this IServiceCollection ser
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddDapperDataSource(this IServiceCollection services, Action> dataSourceSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddDapperDataSource>(serviceSetup)
.AddConfiguredOptions(dataSourceSetup);
@@ -52,8 +61,12 @@ public static IServiceCollection AddDapperDataSource(this IServiceColle
///
///
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddDapperDataSource(this IServiceCollection services, Action setup = null) where TService : class, IDapperDataSource
{
+ Validator.ThrowIfNull(services);
return services.AddDataSource(setup);
}
@@ -64,10 +77,14 @@ public static IServiceCollection AddDapperDataSource(this IServiceColl
/// The type of the DTO to use.
/// The to add the service to.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddDapperDataStore(this IServiceCollection services)
where TService : DapperDataStore
where T : class
{
+ Validator.ThrowIfNull(services);
return services.AddDataStore();
}
}
diff --git a/src/Savvyio.Extensions.DependencyInjection.DapperExtensions/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.DapperExtensions/ServiceCollectionExtensions.cs
index 8bb6d46..59bb291 100644
--- a/src/Savvyio.Extensions.DependencyInjection.DapperExtensions/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.DapperExtensions/ServiceCollectionExtensions.cs
@@ -1,4 +1,6 @@
-ο»Ώusing Microsoft.Extensions.DependencyInjection;
+ο»Ώusing System;
+using Cuemon;
+using Microsoft.Extensions.DependencyInjection;
using Savvyio.Extensions.DapperExtensions;
using Savvyio.Extensions.DependencyInjection.Data;
@@ -15,8 +17,12 @@ public static class ServiceCollectionExtensions
/// The type of the DTO to use.
/// The to add the service to.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddDapperExtensionsDataStore(this IServiceCollection services) where T : class
{
+ Validator.ThrowIfNull(services);
return services.AddDataStore, T, DapperExtensionsQueryOptions>();
}
@@ -27,8 +33,12 @@ public static IServiceCollection AddDapperExtensionsDataStore(this IServiceCo
/// The type used to mark the implementation that this data access object represents. Optimized for DapperExtensions.
/// The to add the service to.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddDapperExtensionsDataStore(this IServiceCollection services) where T : class
{
+ Validator.ThrowIfNull(services);
return services.AddDataStore, T, DapperExtensionsQueryOptions>();
}
}
diff --git a/src/Savvyio.Extensions.DependencyInjection.Domain/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.Domain/ServiceCollectionExtensions.cs
index 8ed5615..c4ba05d 100644
--- a/src/Savvyio.Extensions.DependencyInjection.Domain/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.Domain/ServiceCollectionExtensions.cs
@@ -27,6 +27,9 @@ public static class ServiceCollectionExtensions
///
///
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAggregateRepository(this IServiceCollection services, Action setup = null)
where TService : class, IAggregateRepository
where TEntity : class, IAggregateRoot
diff --git a/src/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/ServiceCollectionExtensions.cs
index 991db68..9287196 100644
--- a/src/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing/ServiceCollectionExtensions.cs
@@ -1,4 +1,5 @@
ο»Ώusing System;
+using Cuemon;
using Cuemon.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Savvyio.Domain.EventSourcing;
@@ -23,8 +24,12 @@ public static class ServiceCollectionExtensions
/// A reference to so that additional calls can be chained.
/// The will be type forwarded accordingly.
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreTracedAggregateRepository(this IServiceCollection services, Action setup = null) where TEntity : class, ITracedAggregateRoot
{
+ Validator.ThrowIfNull(services);
return services.AddTracedAggregateRepository, TEntity, TKey>(setup);
}
@@ -39,8 +44,12 @@ public static IServiceCollection AddEfCoreTracedAggregateRepositoryA reference to so that additional calls can be chained.
/// The will be type forwarded accordingly.
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreTracedAggregateRepository(this IServiceCollection services, Action setup = null) where TEntity : class, ITracedAggregateRoot
{
+ Validator.ThrowIfNull(services);
return services.AddTracedAggregateRepository, TEntity, TKey>(setup);
}
}
diff --git a/src/Savvyio.Extensions.DependencyInjection.EFCore.Domain/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.EFCore.Domain/ServiceCollectionExtensions.cs
index dfcf0e9..d7b3706 100644
--- a/src/Savvyio.Extensions.DependencyInjection.EFCore.Domain/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.EFCore.Domain/ServiceCollectionExtensions.cs
@@ -1,4 +1,5 @@
ο»Ώusing System;
+using Cuemon;
using Cuemon.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Savvyio.Domain;
@@ -21,8 +22,12 @@ public static class ServiceCollectionExtensions
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreAggregateDataSource(this IServiceCollection services, Action dataSourceSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services.AddDataSource(serviceSetup)
.AddUnitOfWork(serviceSetup)
.AddConfiguredOptions(dataSourceSetup);
@@ -36,8 +41,12 @@ public static IServiceCollection AddEfCoreAggregateDataSource(this IServiceColle
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreAggregateDataSource(this IServiceCollection services, Action> dataSourceSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services.AddDataSource>(serviceSetup)
.AddUnitOfWork>(serviceSetup)
.AddConfiguredOptions(dataSourceSetup);
@@ -53,8 +62,12 @@ public static IServiceCollection AddEfCoreAggregateDataSource(this ISer
/// A reference to so that additional calls can be chained.
/// The will be type forwarded accordingly.
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreAggregateRepository(this IServiceCollection services, Action setup = null) where TEntity : class, IAggregateRoot
{
+ Validator.ThrowIfNull(services);
return services.AddAggregateRepository, TEntity, TKey>(setup);
}
@@ -69,8 +82,12 @@ public static IServiceCollection AddEfCoreAggregateRepository(thi
/// A reference to so that additional calls can be chained.
/// The will be type forwarded accordingly.
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreAggregateRepository(this IServiceCollection services, Action setup = null) where TEntity : class, IAggregateRoot
{
+ Validator.ThrowIfNull(services);
return services.AddAggregateRepository, TEntity, TKey>(setup);
}
}
diff --git a/src/Savvyio.Extensions.DependencyInjection.EFCore/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.EFCore/ServiceCollectionExtensions.cs
index d965235..2025e24 100644
--- a/src/Savvyio.Extensions.DependencyInjection.EFCore/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.EFCore/ServiceCollectionExtensions.cs
@@ -1,4 +1,5 @@
ο»Ώusing System;
+using Cuemon;
using Cuemon.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Savvyio.Domain;
@@ -21,8 +22,12 @@ public static class ServiceCollectionExtensions
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreDataSource(this IServiceCollection services, Action dataSourceSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services.AddDataSource(serviceSetup)
.AddUnitOfWork(serviceSetup)
.AddConfiguredOptions(dataSourceSetup);
@@ -37,8 +42,12 @@ public static IServiceCollection AddEfCoreDataSource(this IServiceCollection ser
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreDataSource(this IServiceCollection services, Action> dataSourceSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services.AddDataSource>(serviceSetup)
.AddUnitOfWork>(serviceSetup)
.AddConfiguredOptions(dataSourceSetup);
@@ -54,8 +63,12 @@ public static IServiceCollection AddEfCoreDataSource(this IServiceColle
/// A reference to so that additional calls can be chained.
/// The will be type forwarded to: , , and .
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreRepository(this IServiceCollection services, Action setup = null) where TEntity : class, IIdentity
{
+ Validator.ThrowIfNull(services);
return services.AddRepository, TEntity, TKey>(setup);
}
@@ -70,8 +83,12 @@ public static IServiceCollection AddEfCoreRepository(this IServic
/// A reference to so that additional calls can be chained.
/// The will be type forwarded to: , , and .
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreRepository(this IServiceCollection services, Action setup = null) where TEntity : class, IIdentity
{
+ Validator.ThrowIfNull(services);
return services.AddRepository, TEntity, TKey>(setup);
}
@@ -82,8 +99,12 @@ public static IServiceCollection AddEfCoreRepository(thi
/// The to add the service to.
/// The which may be configured.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreDataStore(this IServiceCollection services, Action setup = null) where T : class
{
+ Validator.ThrowIfNull(services);
return services.AddDataStore, T, EfCoreQueryOptions>(setup);
}
@@ -95,8 +116,12 @@ public static IServiceCollection AddEfCoreDataStore(this IServiceCollection s
/// The to add the service to.
/// The which may be configured.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddEfCoreDataStore(this IServiceCollection services, Action setup = null) where T : class
{
+ Validator.ThrowIfNull(services);
return services.AddDataStore, T, EfCoreQueryOptions>(setup);
}
}
diff --git a/src/Savvyio.Extensions.DependencyInjection.NATS/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.NATS/ServiceCollectionExtensions.cs
index 55edeb6..9dbb106 100644
--- a/src/Savvyio.Extensions.DependencyInjection.NATS/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.NATS/ServiceCollectionExtensions.cs
@@ -2,6 +2,7 @@
using Microsoft.Extensions.DependencyInjection;
using Savvyio.Extensions.DependencyInjection.Messaging;
using System;
+using Cuemon;
using Savvyio.Commands;
using Savvyio.EventDriven;
using Savvyio.Extensions.DependencyInjection.NATS.Commands;
@@ -24,8 +25,12 @@ public static class ServiceCollectionExtensions
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddNatsCommandQueue(this IServiceCollection services, Action natsSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageQueue(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(natsSetup);
@@ -39,8 +44,12 @@ public static IServiceCollection AddNatsCommandQueue(this IServiceCollection ser
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddNatsCommandQueue(this IServiceCollection services, Action> natsSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageQueue, ICommand>(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(natsSetup);
@@ -54,8 +63,12 @@ public static IServiceCollection AddNatsCommandQueue(this IServiceColle
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddNatsEventBus(this IServiceCollection services, Action natsSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageBus(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(natsSetup);
@@ -69,8 +82,12 @@ public static IServiceCollection AddNatsEventBus(this IServiceCollection service
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddNatsEventBus(this IServiceCollection services, Action> natsSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageBus, IIntegrationEvent>(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(natsSetup);
diff --git a/src/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.csproj b/src/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.csproj
new file mode 100644
index 0000000..a2fffda
--- /dev/null
+++ b/src/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.csproj
@@ -0,0 +1,13 @@
+ο»Ώ
+
+
+ Extend the Savvy I/O support for Microsoft Dependency Injection with support for Newtonsoft JSON implementations.
+ newtonsoft json converters converter di dependency-injection
+
+
+
+
+
+
+
+
diff --git a/src/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/ServiceCollectionExtensions.cs
new file mode 100644
index 0000000..fdec1af
--- /dev/null
+++ b/src/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json/ServiceCollectionExtensions.cs
@@ -0,0 +1,35 @@
+ο»Ώusing System;
+using Codebelt.Extensions.Newtonsoft.Json.Formatters;
+using Cuemon;
+using Cuemon.Extensions.DependencyInjection;
+using Microsoft.Extensions.DependencyInjection;
+using Newtonsoft.Json;
+using Savvyio.Extensions.Newtonsoft.Json;
+
+namespace Savvyio.Extensions.DependencyInjection.Newtonsoft.Json
+{
+ ///
+ /// Extension methods for the interface.
+ ///
+ public static class ServiceCollectionExtensions
+ {
+ ///
+ /// Adds an implementation to the specified .
+ ///
+ /// The to extend.
+ /// The which may be configured. Default is optimized for messaging.
+ /// The which may be configured. Default is .
+ /// A reference to so that additional calls can be chained.
+ /// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
+ public static IServiceCollection AddNewtonsoftJsonMarshaller(this IServiceCollection services, Action jsonSetup = null, Action serviceSetup = null)
+ {
+ Validator.ThrowIfNull(services);
+ return services
+ .AddMarshaller(serviceSetup)
+ .AddConfiguredOptions(jsonSetup ?? (o => o.Settings.Formatting = Formatting.None));
+ }
+ }
+}
diff --git a/src/Savvyio.Extensions.DependencyInjection.QueueStorage/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.QueueStorage/ServiceCollectionExtensions.cs
index 7364595..89ad702 100644
--- a/src/Savvyio.Extensions.DependencyInjection.QueueStorage/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.QueueStorage/ServiceCollectionExtensions.cs
@@ -1,4 +1,5 @@
ο»Ώusing System;
+using Cuemon;
using Cuemon.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Savvyio.Commands;
@@ -25,8 +26,12 @@ public static class ServiceCollectionExtensions
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAzureCommandQueue(this IServiceCollection services, Action azureQueueSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageQueue(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(azureQueueSetup);
@@ -40,8 +45,12 @@ public static IServiceCollection AddAzureCommandQueue(this IServiceCollection se
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAzureCommandQueue(this IServiceCollection services, Action> azureQueueSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageQueue, ICommand>(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(azureQueueSetup);
@@ -56,8 +65,12 @@ public static IServiceCollection AddAzureCommandQueue(this IServiceColl
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAzureEventBus(this IServiceCollection services, Action azureQueueSetup, Action azureEventBusSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageBus(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(azureQueueSetup)
@@ -73,8 +86,12 @@ public static IServiceCollection AddAzureEventBus(this IServiceCollection servic
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAzureEventBus(this IServiceCollection services, Action> azureQueueSetup, Action> azureEventBusSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageBus, IIntegrationEvent>(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(azureQueueSetup)
diff --git a/src/Savvyio.Extensions.DependencyInjection.RabbitMQ/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.RabbitMQ/ServiceCollectionExtensions.cs
index 0061229..2056942 100644
--- a/src/Savvyio.Extensions.DependencyInjection.RabbitMQ/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.RabbitMQ/ServiceCollectionExtensions.cs
@@ -4,6 +4,7 @@
using Savvyio.Extensions.DependencyInjection.RabbitMQ.Commands;
using Savvyio.Extensions.DependencyInjection.RabbitMQ.EventDriven;
using System;
+using Cuemon;
using Savvyio.Commands;
using Savvyio.EventDriven;
using Savvyio.Extensions.RabbitMQ.Commands;
@@ -24,8 +25,12 @@ public static class ServiceCollectionExtensions
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddRabbitMqCommandQueue(this IServiceCollection services, Action rabbitMqSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageQueue(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(rabbitMqSetup);
@@ -39,8 +44,12 @@ public static IServiceCollection AddRabbitMqCommandQueue(this IServiceCollection
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddRabbitMqCommandQueue(this IServiceCollection services, Action> rabbitMqSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageQueue, ICommand>(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(rabbitMqSetup);
@@ -54,8 +63,12 @@ public static IServiceCollection AddRabbitMqCommandQueue(this IServiceC
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddRabbitMqEventBus(this IServiceCollection services, Action rabbitMqSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageBus(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(rabbitMqSetup);
@@ -69,8 +82,12 @@ public static IServiceCollection AddRabbitMqEventBus(this IServiceCollection ser
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddRabbitMqEventBus(this IServiceCollection services, Action> rabbitMqSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageBus, IIntegrationEvent>(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(rabbitMqSetup);
diff --git a/src/Savvyio.Extensions.DependencyInjection.SimpleQueueService/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.SimpleQueueService/ServiceCollectionExtensions.cs
index 49dd42b..91dc80c 100644
--- a/src/Savvyio.Extensions.DependencyInjection.SimpleQueueService/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection.SimpleQueueService/ServiceCollectionExtensions.cs
@@ -1,4 +1,5 @@
ο»Ώusing System;
+using Cuemon;
using Cuemon.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Savvyio.Commands;
@@ -24,8 +25,12 @@ public static class ServiceCollectionExtensions
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAmazonCommandQueue(this IServiceCollection services, Action awsSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageQueue(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(awsSetup);
@@ -39,8 +44,12 @@ public static IServiceCollection AddAmazonCommandQueue(this IServiceCollection s
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAmazonCommandQueue(this IServiceCollection services, Action> awsSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageQueue, ICommand>(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(awsSetup);
@@ -54,8 +63,12 @@ public static IServiceCollection AddAmazonCommandQueue(this IServiceCol
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAmazonEventBus(this IServiceCollection services, Action awsSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageBus(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(awsSetup);
@@ -69,8 +82,12 @@ public static IServiceCollection AddAmazonEventBus(this IServiceCollection servi
/// The which may be configured.
/// A reference to so that additional calls can be chained.
/// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddAmazonEventBus(this IServiceCollection services, Action> awsSetup, Action serviceSetup = null)
{
+ Validator.ThrowIfNull(services);
return services
.AddMessageBus, IIntegrationEvent>(serviceSetup ?? (o => o.Lifetime = ServiceLifetime.Singleton))
.AddConfiguredOptions(awsSetup);
diff --git a/src/Savvyio.Extensions.DependencyInjection.Text.Json/Savvyio.Extensions.DependencyInjection.Text.Json.csproj b/src/Savvyio.Extensions.DependencyInjection.Text.Json/Savvyio.Extensions.DependencyInjection.Text.Json.csproj
new file mode 100644
index 0000000..1901465
--- /dev/null
+++ b/src/Savvyio.Extensions.DependencyInjection.Text.Json/Savvyio.Extensions.DependencyInjection.Text.Json.csproj
@@ -0,0 +1,13 @@
+ο»Ώ
+
+
+ Extend the Savvy I/O support for Microsoft Dependency Injection with support for official built-in JSON implementations.
+ microsoft json converters converter di dependency-injection
+
+
+
+
+
+
+
+
diff --git a/src/Savvyio.Extensions.DependencyInjection.Text.Json/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection.Text.Json/ServiceCollectionExtensions.cs
new file mode 100644
index 0000000..96aa6cf
--- /dev/null
+++ b/src/Savvyio.Extensions.DependencyInjection.Text.Json/ServiceCollectionExtensions.cs
@@ -0,0 +1,34 @@
+ο»Ώusing Cuemon.Extensions.DependencyInjection;
+using Cuemon.Extensions.Text.Json.Formatters;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using Cuemon;
+using Savvyio.Extensions.Text.Json;
+
+namespace Savvyio.Extensions.DependencyInjection.Text.Json
+{
+ ///
+ /// Extension methods for the interface.
+ ///
+ public static class ServiceCollectionExtensions
+ {
+ ///
+ /// Adds an implementation to the specified .
+ ///
+ /// The to extend.
+ /// The which may be configured. Default is optimized for messaging.
+ /// The which may be configured. Default is .
+ /// A reference to so that additional calls can be chained.
+ /// The implementation will be type forwarded accordingly.
+ ///
+ /// cannot be null.
+ ///
+ public static IServiceCollection AddJsonMarshaller(this IServiceCollection services, Action jsonSetup = null, Action serviceSetup = null)
+ {
+ Validator.ThrowIfNull(services);
+ return services
+ .AddMarshaller(serviceSetup)
+ .AddConfiguredOptions(jsonSetup ?? (o => o.Settings.WriteIndented = false));
+ }
+ }
+}
diff --git a/src/Savvyio.Extensions.DependencyInjection/ServiceCollectionExtensions.cs b/src/Savvyio.Extensions.DependencyInjection/ServiceCollectionExtensions.cs
index e7e9868..c34b64c 100644
--- a/src/Savvyio.Extensions.DependencyInjection/ServiceCollectionExtensions.cs
+++ b/src/Savvyio.Extensions.DependencyInjection/ServiceCollectionExtensions.cs
@@ -24,10 +24,16 @@ public static class ServiceCollectionExtensions
/// The to add the services to.
/// The which need to be configured by the delegate.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null -or-
+ /// cannot be null.
+ ///
+ ///
+ /// are not in a valid state.
+ ///
public static IServiceCollection AddConfiguredOptions(this IServiceCollection services, Action setup) where TOptions : class, IParameterObject, new()
{
Validator.ThrowIfNull(services);
- Validator.ThrowIfNull(setup);
Validator.ThrowIfInvalidConfigurator(setup, out var options);
return services
.Configure(setup) // support for IOptions
@@ -42,6 +48,9 @@ public static class ServiceCollectionExtensions
/// The to add the service to.
/// The which may be configured.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddMarshaller(this IServiceCollection services, Action setup = null) where TService : class, IMarshaller
{
Validator.ThrowIfNull(services);
@@ -61,6 +70,10 @@ public static IServiceCollection AddMarshaller(this IServiceCollection
/// The function delegate that creates the service.
/// The which may be configured.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null -or-
+ /// cannot be null.
+ ///
public static IServiceCollection AddMarshaller(this IServiceCollection services, Func implementationFactory, Action setup = null) where TService : class, IMarshaller
{
Validator.ThrowIfNull(services);
@@ -84,6 +97,9 @@ public static IServiceCollection AddMarshaller(this IServiceCollection
///
///
///
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddDataSource(this IServiceCollection services, Action setup = null) where TService : class, IDataSource
{
Validator.ThrowIfNull(services);
@@ -101,8 +117,12 @@ public static IServiceCollection AddDataSource(this IServiceCollection
/// The to extend.
/// The which may be configured.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddServiceLocator(this IServiceCollection services, Action setup = null)
{
+ Validator.ThrowIfNull(services);
var options = setup.Configure();
services.TryAdd(typeof(IServiceLocator), options.ImplementationFactory, options.Lifetime);
return services;
@@ -113,8 +133,12 @@ public static IServiceCollection AddServiceLocator(this IServiceCollection servi
///
/// The to add the service to.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddHandlerServicesDescriptor(this IServiceCollection services)
{
+ Validator.ThrowIfNull(services);
if (services.Any(sd => sd.ServiceType == typeof(HandlerServicesDescriptor)))
{
services.AddSingleton(provider => provider.GetRequiredService());
@@ -128,8 +152,12 @@ public static IServiceCollection AddHandlerServicesDescriptor(this IServiceColle
/// The to extend.
/// The which may be configured.
/// A reference to so that additional calls can be chained.
+ ///
+ /// cannot be null.
+ ///
public static IServiceCollection AddSavvyIO(this IServiceCollection services, Action setup = null)
{
+ Validator.ThrowIfNull(services);
var options = setup.Configure();
if (options.AssembliesToScan != null)
diff --git a/test/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests.csproj b/test/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests.csproj
new file mode 100644
index 0000000..c5eafca
--- /dev/null
+++ b/test/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests.csproj
@@ -0,0 +1,11 @@
+
+
+
+ Savvyio.Extensions.DependencyInjection.Newtonsoft.Json
+
+
+
+
+
+
+
diff --git a/test/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests/ServiceCollectionExtensionsTest.cs b/test/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests/ServiceCollectionExtensionsTest.cs
new file mode 100644
index 0000000..a6a7ed6
--- /dev/null
+++ b/test/Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests/ServiceCollectionExtensionsTest.cs
@@ -0,0 +1,88 @@
+using System;
+using Codebelt.Extensions.Newtonsoft.Json.Formatters;
+using Codebelt.Extensions.Xunit;
+using Cuemon.Extensions.DependencyInjection;
+using Microsoft.Extensions.DependencyInjection;
+using Newtonsoft.Json;
+using Savvyio.Extensions.DependencyInjection.Newtonsoft.Json;
+using Savvyio.Extensions.Newtonsoft.Json;
+using Xunit;
+
+namespace Savvyio.Extensions.DependencyInjection.Newtonsoft.Json.Tests
+{
+ public class ServiceCollectionExtensionsTest : Test
+ {
+ [Fact]
+ public void AddNewtonsoftJsonMarshaller_ShouldThrowOnNullServices()
+ {
+ // Arrange
+ IServiceCollection services = null;
+
+ // Act & Assert
+ Assert.Throws(() =>
+ ServiceCollectionExtensions.AddNewtonsoftJsonMarshaller(services));
+ }
+
+ [Fact]
+ public void AddNewtonsoftJsonMarshaller_ShouldRegisterNewtonsoftJsonMarshallerWithDefaultOptions()
+ {
+ // Arrange
+ var services = new ServiceCollection();
+
+ // Act
+ services.AddNewtonsoftJsonMarshaller();
+
+ // Assert
+ var provider = services.BuildServiceProvider();
+ var marshaller = provider.GetService();
+ Assert.NotNull(marshaller);
+
+ // Check that options are registered and default formatting is None
+ var options = provider.GetService();
+ Assert.NotNull(options);
+ Assert.Equal(Formatting.None, options.Settings.Formatting);
+ }
+
+ [Fact]
+ public void AddNewtonsoftJsonMarshaller_ShouldApplyCustomJsonSetup()
+ {
+ // Arrange
+ var services = new ServiceCollection();
+ var called = false;
+
+ // Act
+ services.AddNewtonsoftJsonMarshaller(o =>
+ {
+ o.Settings.Formatting = Formatting.Indented;
+ called = true;
+ });
+
+ // Assert
+ var provider = services.BuildServiceProvider();
+ var options = provider.GetService();
+ Assert.NotNull(options);
+ Assert.True(called);
+ Assert.Equal(Formatting.Indented, options.Settings.Formatting);
+ }
+
+ [Fact]
+ public void AddNewtonsoftJsonMarshaller_ShouldApplyCustomServiceSetup()
+ {
+ // Arrange
+ var services = new ServiceCollection();
+ ServiceLifetime? lifetime = null;
+
+ // Act
+ services.AddNewtonsoftJsonMarshaller(null, o =>
+ {
+ o.Lifetime = ServiceLifetime.Scoped;
+ lifetime = o.Lifetime;
+ });
+
+ // Assert
+ var descriptor = Assert.Single(services, d => d.ServiceType == typeof(NewtonsoftJsonMarshaller));
+ Assert.Equal(ServiceLifetime.Scoped, descriptor.Lifetime);
+ Assert.Equal(ServiceLifetime.Scoped, lifetime);
+ }
+ }
+}
diff --git a/test/Savvyio.Extensions.DependencyInjection.Text.Json.Tests/Savvyio.Extensions.DependencyInjection.Text.Json.Tests.csproj b/test/Savvyio.Extensions.DependencyInjection.Text.Json.Tests/Savvyio.Extensions.DependencyInjection.Text.Json.Tests.csproj
new file mode 100644
index 0000000..ed72582
--- /dev/null
+++ b/test/Savvyio.Extensions.DependencyInjection.Text.Json.Tests/Savvyio.Extensions.DependencyInjection.Text.Json.Tests.csproj
@@ -0,0 +1,11 @@
+
+
+
+ Savvyio.Extensions.DependencyInjection.Text.Json
+
+
+
+
+
+
+
diff --git a/test/Savvyio.Extensions.DependencyInjection.Text.Json.Tests/ServiceCollectionExtensionsTest.cs b/test/Savvyio.Extensions.DependencyInjection.Text.Json.Tests/ServiceCollectionExtensionsTest.cs
new file mode 100644
index 0000000..2112ea3
--- /dev/null
+++ b/test/Savvyio.Extensions.DependencyInjection.Text.Json.Tests/ServiceCollectionExtensionsTest.cs
@@ -0,0 +1,86 @@
+using System;
+using Codebelt.Extensions.Xunit;
+using Cuemon.Extensions.Text.Json.Formatters;
+using Microsoft.Extensions.DependencyInjection;
+using Savvyio.Extensions.DependencyInjection.Text.Json;
+using Savvyio.Extensions.Text.Json;
+using Xunit;
+
+namespace Savvyio.Extensions.DependencyInjection.Text.Json.Tests
+{
+ public class ServiceCollectionExtensionsTest : Test
+ {
+ [Fact]
+ public void AddJsonMarshaller_ShouldThrowOnNullServices()
+ {
+ // Arrange
+ IServiceCollection services = null;
+
+ // Act & Assert
+ Assert.Throws(() =>
+ ServiceCollectionExtensions.AddJsonMarshaller(services));
+ }
+
+ [Fact]
+ public void AddJsonMarshaller_ShouldRegisterJsonMarshallerWithDefaultOptions()
+ {
+ // Arrange
+ var services = new ServiceCollection();
+
+ // Act
+ services.AddJsonMarshaller();
+
+ // Assert
+ var provider = services.BuildServiceProvider();
+ var marshaller = provider.GetService();
+ Assert.NotNull(marshaller);
+
+ // Check that options are registered and default WriteIndented is false
+ var options = provider.GetService();
+ Assert.NotNull(options);
+ Assert.False(options.Settings.WriteIndented);
+ }
+
+ [Fact]
+ public void AddJsonMarshaller_ShouldApplyCustomJsonSetup()
+ {
+ // Arrange
+ var services = new ServiceCollection();
+ var called = false;
+
+ // Act
+ services.AddJsonMarshaller(o =>
+ {
+ o.Settings.WriteIndented = true;
+ called = true;
+ });
+
+ // Assert
+ var provider = services.BuildServiceProvider();
+ var options = provider.GetService();
+ Assert.NotNull(options);
+ Assert.True(called);
+ Assert.True(options.Settings.WriteIndented);
+ }
+
+ [Fact]
+ public void AddJsonMarshaller_ShouldApplyCustomServiceSetup()
+ {
+ // Arrange
+ var services = new ServiceCollection();
+ ServiceLifetime? lifetime = null;
+
+ // Act
+ services.AddJsonMarshaller(null, o =>
+ {
+ o.Lifetime = ServiceLifetime.Scoped;
+ lifetime = o.Lifetime;
+ });
+
+ // Assert
+ var descriptor = Assert.Single(services, d => d.ServiceType == typeof(JsonMarshaller));
+ Assert.Equal(ServiceLifetime.Scoped, descriptor.Lifetime);
+ Assert.Equal(ServiceLifetime.Scoped, lifetime);
+ }
+ }
+}
diff --git a/test/Savvyio.Extensions.NATS.Tests/Commands/NatsCommandQueueTest.cs b/test/Savvyio.Extensions.NATS.Tests/Commands/NatsCommandQueueTest.cs
new file mode 100644
index 0000000..42781db
--- /dev/null
+++ b/test/Savvyio.Extensions.NATS.Tests/Commands/NatsCommandQueueTest.cs
@@ -0,0 +1,55 @@
+using System;
+using Codebelt.Extensions.Xunit;
+using Savvyio.Commands;
+using Savvyio.Extensions.Text.Json;
+using Savvyio.Messaging;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace Savvyio.Extensions.NATS.Commands
+{
+ public class NatsCommandQueueTest : Test
+ {
+ private IMarshaller _marshaller = JsonMarshaller.Default;
+ private NatsCommandQueueOptions _options = new ();
+
+ public NatsCommandQueueTest(ITestOutputHelper output) : base(output) { }
+
+ [Fact]
+ public void Constructor_ShouldInitialize_WithValidOptions()
+ {
+ var options = new NatsCommandQueueOptions
+ {
+ StreamName = "stream",
+ ConsumerName = "consumer",
+ Subject = "subject"
+ };
+
+ var queue = new NatsCommandQueue(_marshaller, options);
+
+ Assert.NotNull(queue);
+ Assert.IsAssignableFrom>(queue);
+ Assert.IsAssignableFrom>(queue);
+ Assert.IsAssignableFrom>(queue);
+ }
+
+ [Fact]
+ public void Constructor_ShouldThrow_WhenMarshallerIsNull()
+ {
+ Assert.Throws(() => new NatsCommandQueue(null, _options));
+ }
+
+ [Fact]
+ public void Constructor_ShouldThrow_WhenOptionsIsNull()
+ {
+ Assert.Throws(() => new NatsCommandQueue(_marshaller, null));
+ }
+
+
+ [Fact]
+ public void Constructor_ShouldThrow_WhenOptionsAreInvalid()
+ {
+ Assert.Throws(() => new NatsCommandQueue(_marshaller, _options));
+ }
+ }
+}
diff --git a/test/Savvyio.Extensions.NATS.Tests/EventDriven/NatsEventBusOptionsTest.cs b/test/Savvyio.Extensions.NATS.Tests/EventDriven/NatsEventBusOptionsTest.cs
new file mode 100644
index 0000000..0a22957
--- /dev/null
+++ b/test/Savvyio.Extensions.NATS.Tests/EventDriven/NatsEventBusOptionsTest.cs
@@ -0,0 +1,18 @@
+using Xunit;
+using Xunit.Abstractions;
+using Codebelt.Extensions.Xunit;
+
+namespace Savvyio.Extensions.NATS.EventDriven
+{
+ public class NatsEventBusOptionsTest : Test
+ {
+ public NatsEventBusOptionsTest(ITestOutputHelper output) : base(output) { }
+
+ [Fact]
+ public void ShouldInheritFromNatsMessageOptions()
+ {
+ var options = new NatsEventBusOptions();
+ Assert.IsAssignableFrom(options);
+ }
+ }
+}
diff --git a/test/Savvyio.Extensions.NATS.Tests/EventDriven/NatsEventBusTest.cs b/test/Savvyio.Extensions.NATS.Tests/EventDriven/NatsEventBusTest.cs
new file mode 100644
index 0000000..231c550
--- /dev/null
+++ b/test/Savvyio.Extensions.NATS.Tests/EventDriven/NatsEventBusTest.cs
@@ -0,0 +1,56 @@
+using System;
+using Codebelt.Extensions.Xunit;
+using Savvyio.EventDriven;
+using Savvyio.Extensions.NATS.Commands;
+using Savvyio.Extensions.NATS.EventDriven;
+using Savvyio.Extensions.Text.Json;
+using Savvyio.Messaging;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace Savvyio.Extensions.NATS.EventDriven
+{
+ public class NatsEventBusTest : Test
+ {
+ private IMarshaller _marshaller = JsonMarshaller.Default;
+ private NatsEventBusOptions _options = new ();
+
+ public NatsEventBusTest(ITestOutputHelper output) : base(output) { }
+
+ [Fact]
+ public void Constructor_ShouldInitialize_WithValidOptions()
+ {
+ var options = new NatsEventBusOptions
+ {
+ Subject = "subject"
+ };
+
+ var bus = new NatsEventBus(_marshaller, options);
+
+ Assert.NotNull(bus);
+ Assert.IsAssignableFrom>(bus);
+ Assert.IsAssignableFrom>(bus);
+ Assert.IsAssignableFrom>(bus);
+ }
+
+
+ [Fact]
+ public void Constructor_ShouldThrow_WhenMarshallerIsNull()
+ {
+ Assert.Throws(() => new NatsEventBus(null, _options));
+ }
+
+ [Fact]
+ public void Constructor_ShouldThrow_WhenOptionsIsNull()
+ {
+ Assert.Throws(() => new NatsEventBus(_marshaller, null));
+ }
+
+
+ [Fact]
+ public void Constructor_ShouldThrow_WhenOptionsAreInvalid()
+ {
+ Assert.Throws(() => new NatsEventBus(_marshaller, _options));
+ }
+ }
+}
diff --git a/test/Savvyio.Extensions.NATS.Tests/NatsMessageOptionsTest.cs b/test/Savvyio.Extensions.NATS.Tests/NatsMessageOptionsTest.cs
index 39d0981..cb862a5 100644
--- a/test/Savvyio.Extensions.NATS.Tests/NatsMessageOptionsTest.cs
+++ b/test/Savvyio.Extensions.NATS.Tests/NatsMessageOptionsTest.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+ο»Ώ using System;
using Codebelt.Extensions.Xunit;
using Xunit;
using Xunit.Abstractions;
@@ -7,55 +7,41 @@ namespace Savvyio.Extensions.NATS
{
public class NatsMessageOptionsTest : Test
{
- public NatsMessageOptionsTest(ITestOutputHelper output) : base(output)
- {
- }
+ public NatsMessageOptionsTest(ITestOutputHelper output) : base(output) { }
[Fact]
- public void Constructor_Sets_Default_Values()
+ public void Constructor_ShouldSetDefaults()
{
var options = new NatsMessageOptions();
-
- Assert.Equal(new Uri("nats://127.0.0.1:4222"), options.NatsUrl);
+ Assert.NotNull(options.NatsUrl);
+ Assert.Equal("nats://127.0.0.1:4222", options.NatsUrl.OriginalString);
Assert.Null(options.Subject);
}
[Fact]
- public void ValidateOptions_Throws_When_NatsUrl_Is_Null()
+ public void ValidateOptions_ShouldThrow_WhenNatsUrlIsNull()
{
- var options = new NatsMessageOptions
- {
- NatsUrl = null,
- Subject = "subject"
- };
-
+ var options = new NatsMessageOptions { NatsUrl = null, Subject = "foo" };
Assert.Throws(() => options.ValidateOptions());
}
- [Theory]
- [InlineData(null)]
- [InlineData("")]
- [InlineData(" ")]
- public void ValidateOptions_Throws_When_Subject_Is_Null_Or_Whitespace(string subject)
+ [Fact]
+ public void ValidateOptions_ShouldThrow_WhenSubjectIsNullOrWhitespace()
{
- var options = new NatsMessageOptions
- {
- NatsUrl = new Uri("nats://localhost:4222"),
- Subject = subject
- };
+ var options = new NatsMessageOptions { Subject = null };
+ Assert.Throws(() => options.ValidateOptions());
+
+ options.Subject = "";
+ Assert.Throws(() => options.ValidateOptions());
+ options.Subject = " ";
Assert.Throws(() => options.ValidateOptions());
}
[Fact]
- public void ValidateOptions_Does_Not_Throw_When_Valid()
+ public void ValidateOptions_ShouldNotThrow_WhenValid()
{
- var options = new NatsMessageOptions
- {
- NatsUrl = new Uri("nats://localhost:4222"),
- Subject = "valid-subject"
- };
-
+ var options = new NatsMessageOptions { Subject = "foo" };
var ex = Record.Exception(() => options.ValidateOptions());
Assert.Null(ex);
}
diff --git a/test/Savvyio.Extensions.NATS.Tests/Savvyio.Extensions.NATS.Tests.csproj b/test/Savvyio.Extensions.NATS.Tests/Savvyio.Extensions.NATS.Tests.csproj
index 753ce51..3227d75 100644
--- a/test/Savvyio.Extensions.NATS.Tests/Savvyio.Extensions.NATS.Tests.csproj
+++ b/test/Savvyio.Extensions.NATS.Tests/Savvyio.Extensions.NATS.Tests.csproj
@@ -4,12 +4,9 @@
Savvyio.Extensions.NATS
-
-
-
-
+