diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8de9d25b..0f7d6b6c 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -25,6 +25,13 @@ jobs:
8.0.x
9.0.x
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-quality: 'preview'
+ dotnet-version: |
+ 10.0.x
+
- name: Restore dependencies
run: dotnet restore
- name: Build
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index a88dca03..2e052e8c 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -24,6 +24,13 @@ jobs:
8.0.x
9.0.x
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-quality: 'preview'
+ dotnet-version: |
+ 10.0.x
+
- name: Restore dependencies
run: dotnet restore
- name: Build
diff --git a/Directory.Build.props b/Directory.Build.props
index 683458d7..90124a90 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -17,10 +17,6 @@
false
-
-
-
-
true
true
diff --git a/Directory.Packages.props b/Directory.Packages.props
index c6718470..ebc45ac2 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -25,7 +25,6 @@
-
@@ -37,6 +36,7 @@
-
+
+
diff --git a/benchmarks/Benchmark.Behaviors/Benchmark.Behaviors.csproj b/benchmarks/Benchmark.Behaviors/Benchmark.Behaviors.csproj
index 85dcd06e..f7d5880a 100644
--- a/benchmarks/Benchmark.Behaviors/Benchmark.Behaviors.csproj
+++ b/benchmarks/Benchmark.Behaviors/Benchmark.Behaviors.csproj
@@ -1,4 +1,4 @@
-
+
Exe
diff --git a/benchmarks/Benchmark.Behaviors/Benchmark.cs b/benchmarks/Benchmark.Behaviors/Benchmark.cs
index 2d9a1f3f..0682e295 100644
--- a/benchmarks/Benchmark.Behaviors/Benchmark.cs
+++ b/benchmarks/Benchmark.Behaviors/Benchmark.cs
@@ -1,4 +1,5 @@
using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Order;
using Immediate.Handlers.Shared;
@@ -7,7 +8,7 @@
namespace Immediate.Handlers.Benchmarks;
public sealed class DirectTimingBehavior(
- SomeHandlerClass handler
+ TraditionalExample handler
)
{
public TimeSpan Elapsed { get; private set; }
@@ -81,21 +82,15 @@ public sealed class SomeService
{
private static readonly SomeResponse s_response = new(Guid.NewGuid());
- private static ValueTask VtResponse => new(s_response);
-
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Bench instance method")]
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not Being Tested")]
+ [SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Bench instance method")]
+ [SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not Being Tested")]
public ValueTask ServiceHandler(
SomeRequest request,
CancellationToken cancellationToken
- ) => VtResponse;
+ ) => ValueTask.FromResult(s_response);
}
-[Handler]
-[Behaviors(
- typeof(IhTimingBehavior<,>)
-)]
-public sealed partial class SomeHandlerClass(SomeService service)
+public sealed partial class TraditionalExample(SomeService service)
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
@@ -113,7 +108,14 @@ async Task MediatR.IRequestHandler.Hand
SomeRequest request,
CancellationToken cancellationToken
) => await service.ServiceHandler(request, cancellationToken);
+}
+[Handler]
+[Behaviors(
+ typeof(IhTimingBehavior<,>)
+)]
+public static partial class StaticIhExample
+{
private static async ValueTask HandleAsync(
SomeRequest request,
SomeService service,
@@ -121,29 +123,39 @@ CancellationToken cancellationToken
) => await service.ServiceHandler(request, cancellationToken);
}
+[Handler]
+[Behaviors(
+ typeof(IhTimingBehavior<,>)
+)]
+public sealed partial class SealedIhExample(SomeService service)
+{
+ [SuppressMessage("ImmediateHandler", "IHR0009:Handler method must be static", Justification = "Analyzer to be fixed")]
+ private async ValueTask HandleAsync(
+ SomeRequest request,
+ CancellationToken cancellationToken
+ ) => await service.ServiceHandler(request, cancellationToken);
+}
+
[MemoryDiagnoser]
[Orderer(SummaryOrderPolicy.FastestToSlowest, MethodOrderPolicy.Declared)]
[RankColumn]
-//[EventPipeProfiler(EventPipeProfile.CpuSampling)]
-//[DisassemblyDiagnoser]
-//[InliningDiagnoser(logFailuresOnly: true, allowedNamespaces: new[] { "Mediator" })]
#pragma warning disable CA1707 // Identifiers should not contain underscores
public class RequestBenchmarks
{
- private IServiceProvider? _serviceProvider;
- private IServiceProvider? _abstractionServiceProvider;
- private IServiceScope? _serviceScope;
- private IServiceScope? _abstractionServiceScope;
- private Mediator.IMediator? _mediator;
- private Mediator.Mediator? _concreteMediator;
- private MediatR.IMediator? _mediatr;
- private SomeHandlerClass.Handler? _immediateHandler;
- private IHandler? _immediateHandlerAbstraction;
- private DirectTimingBehavior? _handler;
- private SomeRequest? _request;
-
- [GlobalSetup]
- public void Setup()
+ private readonly IServiceProvider _serviceProvider;
+ private readonly IServiceProvider _abstractionServiceProvider;
+ private readonly IServiceScope _serviceScope;
+ private readonly IServiceScope _abstractionServiceScope;
+ private readonly Mediator.IMediator _mediator;
+ private readonly Mediator.Mediator _concreteMediator;
+ private readonly MediatR.IMediator _mediatr;
+ private readonly StaticIhExample.Handler _immediateStaticHandler;
+ private readonly SealedIhExample.Handler _immediateSealedHandler;
+ private readonly IHandler _immediateHandlerAbstraction;
+ private readonly DirectTimingBehavior _handler;
+ private readonly SomeRequest _request;
+
+ public RequestBenchmarks()
{
var services = new ServiceCollection();
@@ -167,7 +179,7 @@ public void Setup()
);
_ = services.AddScoped();
- _ = services.AddScoped();
+ _ = services.AddScoped();
_serviceProvider = services.BuildServiceProvider();
@@ -177,7 +189,8 @@ public void Setup()
_mediator = _serviceProvider.GetRequiredService();
_concreteMediator = _serviceProvider.GetRequiredService();
_mediatr = _serviceProvider.GetRequiredService();
- _immediateHandler = _serviceProvider.GetRequiredService();
+ _immediateStaticHandler = _serviceProvider.GetRequiredService();
+ _immediateSealedHandler = _serviceProvider.GetRequiredService();
_handler = _serviceProvider.GetRequiredService();
_request = new(Guid.NewGuid());
@@ -201,9 +214,15 @@ public void Cleanup()
}
[Benchmark]
- public ValueTask SendRequest_ImmediateHandler()
+ public ValueTask SendRequest_ImmediateStaticHandler()
+ {
+ return _immediateStaticHandler!.HandleAsync(_request!, CancellationToken.None);
+ }
+
+ [Benchmark]
+ public ValueTask SendRequest_ImmediateSealedHandler()
{
- return _immediateHandler!.HandleAsync(_request!, CancellationToken.None);
+ return _immediateSealedHandler!.HandleAsync(_request!, CancellationToken.None);
}
[Benchmark]
diff --git a/benchmarks/Benchmark.Large/Benchmark.cs b/benchmarks/Benchmark.Large/Benchmark.cs
index 79720984..1bb0db48 100644
--- a/benchmarks/Benchmark.Large/Benchmark.cs
+++ b/benchmarks/Benchmark.Large/Benchmark.cs
@@ -1,3 +1,4 @@
+using System.Diagnostics.CodeAnalysis;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Order;
using Immediate.Handlers.Shared;
@@ -11,46 +12,59 @@ public sealed record SomeRequest(Guid Id)
public sealed record SomeResponse(Guid Id);
-[Handler]
public sealed partial class SomeHandlerClass
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
private static readonly SomeResponse s_response = new(Guid.NewGuid());
- private static readonly Task s_tResponse = Task.FromResult(s_response);
- private static ValueTask VtResponse => new(s_response);
-
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Bench instance method")]
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not Being Tested")]
+ [SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Bench instance method")]
+ [SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not Being Tested")]
public ValueTask Handle(
SomeRequest request,
CancellationToken cancellationToken
- ) => VtResponse;
+ ) => ValueTask.FromResult(s_response);
ValueTask Mediator.IRequestHandler.Handle(
SomeRequest request,
CancellationToken cancellationToken
- ) => VtResponse;
+ ) => ValueTask.FromResult(s_response);
Task MediatR.IRequestHandler.Handle(
SomeRequest request,
CancellationToken cancellationToken
- ) => s_tResponse;
+ ) => Task.FromResult(s_response);
+}
+
+[Handler]
+public static partial class StaticIhExample
+{
+ private static readonly SomeResponse s_response = new(Guid.NewGuid());
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not Being Tested")]
+ [SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not Being Tested")]
private static ValueTask HandleAsync(
SomeRequest request,
- CancellationToken cancellationToken
- ) => VtResponse;
+ CancellationToken token
+ ) => ValueTask.FromResult(s_response);
+}
+
+[Handler]
+public sealed partial class SealedIhExample
+{
+ private static readonly SomeResponse s_response = new(Guid.NewGuid());
+
+ [SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not Being Tested")]
+ [SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Bench instance method")]
+ [SuppressMessage("ImmediateHandler", "IHR0009:Handler method must be static", Justification = "Analyzer to be fixed")]
+ private ValueTask HandleAsync(
+ SomeRequest request,
+ CancellationToken token
+ ) => ValueTask.FromResult(s_response);
}
[MemoryDiagnoser]
[Orderer(SummaryOrderPolicy.FastestToSlowest, MethodOrderPolicy.Declared)]
[RankColumn]
-//[EventPipeProfiler(EventPipeProfile.CpuSampling)]
-//[DisassemblyDiagnoser]
-//[InliningDiagnoser(logFailuresOnly: true, allowedNamespaces: new[] { "Mediator" })]
#pragma warning disable CA1707 // Identifiers should not contain underscores
public class RequestBenchmarks
{
@@ -61,7 +75,8 @@ public class RequestBenchmarks
private Mediator.IMediator? _mediator;
private Mediator.Mediator? _concreteMediator;
private MediatR.IMediator? _mediatr;
- private SomeHandlerClass.Handler? _immediateHandler;
+ private StaticIhExample.Handler? _immediateStaticHandler;
+ private SealedIhExample.Handler? _immediateSealedHandler;
private IHandler? _immediateHandlerAbstraction;
private SomeHandlerClass? _handler;
private SomeRequest? _request;
@@ -86,7 +101,8 @@ public void Setup()
_mediator = _serviceProvider.GetRequiredService();
_concreteMediator = _serviceProvider.GetRequiredService();
_mediatr = _serviceProvider.GetRequiredService();
- _immediateHandler = _serviceProvider.GetRequiredService();
+ _immediateStaticHandler = _serviceProvider.GetRequiredService();
+ _immediateSealedHandler = _serviceProvider.GetRequiredService();
_handler = _serviceProvider.GetRequiredService();
_request = new(Guid.NewGuid());
@@ -105,9 +121,15 @@ public void Cleanup()
}
[Benchmark]
- public ValueTask SendRequest_ImmediateHandler()
+ public ValueTask SendRequest_ImmediateStaticHandler()
+ {
+ return _immediateStaticHandler!.HandleAsync(_request!, CancellationToken.None);
+ }
+
+ [Benchmark]
+ public ValueTask SendRequest_ImmediateSealedHandler()
{
- return _immediateHandler!.HandleAsync(_request!, CancellationToken.None);
+ return _immediateSealedHandler!.HandleAsync(_request!, CancellationToken.None);
}
[Benchmark]
diff --git a/benchmarks/Benchmark.Large/Types.cs b/benchmarks/Benchmark.Large/Types.cs
index 25a338e9..fbf9c10b 100644
--- a/benchmarks/Benchmark.Large/Types.cs
+++ b/benchmarks/Benchmark.Large/Types.cs
@@ -1,349 +1,501 @@
using Immediate.Handlers.Shared;
+#pragma warning disable CA1822
#pragma warning disable IDE0060
+#pragma warning disable IHR0009
#pragma warning disable MA0022
namespace Immediate.Handlers.Benchmarks;
public sealed record Request0(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response0(long Id);
+public sealed record Response0(long Id);
-[Handler]
-public sealed partial class Request0Handler
+public sealed partial class Request0TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request0 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request0 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request0StaticHandler
+{
+ private static ValueTask Handle(
Request0 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request0SealedHandler
+{
+ private ValueTask Handle(
Request0 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request1(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response1(long Id);
+public sealed record Response1(long Id);
-[Handler]
-public sealed partial class Request1Handler
+public sealed partial class Request1TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request1 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request1 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request1StaticHandler
+{
+ private static ValueTask Handle(
Request1 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request1SealedHandler
+{
+ private ValueTask Handle(
Request1 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request2(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response2(long Id);
+public sealed record Response2(long Id);
-[Handler]
-public sealed partial class Request2Handler
+public sealed partial class Request2TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request2 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request2 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request2StaticHandler
+{
+ private static ValueTask Handle(
Request2 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request2SealedHandler
+{
+ private ValueTask Handle(
Request2 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request3(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response3(long Id);
+public sealed record Response3(long Id);
-[Handler]
-public sealed partial class Request3Handler
+public sealed partial class Request3TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request3 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request3 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request3StaticHandler
+{
+ private static ValueTask Handle(
Request3 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request3SealedHandler
+{
+ private ValueTask Handle(
Request3 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request4(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response4(long Id);
+public sealed record Response4(long Id);
-[Handler]
-public sealed partial class Request4Handler
+public sealed partial class Request4TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request4 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request4 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request4StaticHandler
+{
+ private static ValueTask Handle(
Request4 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request4SealedHandler
+{
+ private ValueTask Handle(
Request4 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request5(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response5(long Id);
+public sealed record Response5(long Id);
-[Handler]
-public sealed partial class Request5Handler
+public sealed partial class Request5TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request5 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request5 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request5StaticHandler
+{
+ private static ValueTask Handle(
Request5 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request5SealedHandler
+{
+ private ValueTask Handle(
Request5 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request6(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response6(long Id);
+public sealed record Response6(long Id);
-[Handler]
-public sealed partial class Request6Handler
+public sealed partial class Request6TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request6 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request6 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request6StaticHandler
+{
+ private static ValueTask Handle(
Request6 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request6SealedHandler
+{
+ private ValueTask Handle(
Request6 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request7(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response7(long Id);
+public sealed record Response7(long Id);
-[Handler]
-public sealed partial class Request7Handler
+public sealed partial class Request7TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request7 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request7 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request7StaticHandler
+{
+ private static ValueTask Handle(
Request7 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request7SealedHandler
+{
+ private ValueTask Handle(
Request7 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request8(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response8(long Id);
+public sealed record Response8(long Id);
-[Handler]
-public sealed partial class Request8Handler
+public sealed partial class Request8TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request8 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request8 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request8StaticHandler
+{
+ private static ValueTask Handle(
Request8 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request8SealedHandler
+{
+ private ValueTask Handle(
Request8 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request9(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response9(long Id);
+public sealed record Response9(long Id);
-[Handler]
-public sealed partial class Request9Handler
+public sealed partial class Request9TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request9 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request9 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request9StaticHandler
+{
+ private static ValueTask Handle(
Request9 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request9SealedHandler
+{
+ private ValueTask Handle(
Request9 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request10(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response10(long Id);
+public sealed record Response10(long Id);
-[Handler]
-public sealed partial class Request10Handler
+public sealed partial class Request10TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request10 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request10 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request10StaticHandler
+{
+ private static ValueTask Handle(
Request10 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request10SealedHandler
+{
+ private ValueTask Handle(
Request10 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request11(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response11(long Id);
+public sealed record Response11(long Id);
-[Handler]
-public sealed partial class Request11Handler
+public sealed partial class Request11TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request11 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request11 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request11StaticHandler
+{
+ private static ValueTask Handle(
Request11 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request11SealedHandler
+{
+ private ValueTask Handle(
Request11 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request12(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response12(long Id);
+public sealed record Response12(long Id);
-[Handler]
-public sealed partial class Request12Handler
+public sealed partial class Request12TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
+ ValueTask Mediator.IRequestHandler.Handle(
Request12 request,
CancellationToken cancellationToken
) => default;
- ValueTask Mediator.IRequestHandler.Handle(
+ Task MediatR.IRequestHandler.Handle(
+ Request12 request,
+ CancellationToken cancellationToken
+ ) => default!;
+}
+
+[Handler]
+public static partial class Request12StaticHandler
+{
+ private static ValueTask Handle(
Request12 request,
CancellationToken cancellationToken
) => default;
+}
- Task MediatR.IRequestHandler.Handle(
+[Handler]
+public sealed partial class Request12SealedHandler
+{
+ private ValueTask Handle(
Request12 request,
CancellationToken cancellationToken
- ) => default!;
+ ) => default;
}
public sealed record Request13(long Id) : Mediator.IRequest, MediatR.IRequest;
-public record struct Response13(long Id);
+public sealed record Response13(long Id);
-[Handler]
-public sealed partial class Request13Handler
+public sealed partial class Request13TraditionalHandler
: Mediator.IRequestHandler,
MediatR.IRequestHandler
{
- private static ValueTask Handle(
- Request13 request,
- CancellationToken cancellationToken
- ) => default;
-
ValueTask Mediator.IRequestHandler.Handle(
Request13 request,
CancellationToken cancellationToken
@@ -355,20 +507,32 @@ CancellationToken cancellationToken
) => default!;
}
-public sealed record Request14(long Id) : Mediator.IRequest, MediatR.IRequest;
-
-public record struct Response14(long Id);
-
[Handler]
-public sealed partial class Request14Handler
- : Mediator.IRequestHandler,
- MediatR.IRequestHandler