Skip to content

Commit 6ac0333

Browse files
author
Samuel Abraham
committed
v10.0.1
1 parent d257911 commit 6ac0333

2 files changed

Lines changed: 11 additions & 12 deletions

File tree

src/TypeCache/Mediation/Mediator.cs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ internal sealed class Mediator(IServiceProvider serviceProvider, ILogger<IMediat
1212
internal readonly struct Sender<RESPONSE>(Mediator mediator, ILogger<IMediator>? logger, object? key)
1313
: ISend<RESPONSE>
1414
{
15+
internal ValueTask<RESPONSE> InvokeSend(IRequest<RESPONSE> request, CancellationToken token)
16+
=> (ValueTask<RESPONSE>)this.GetType().Methods[nameof(Send)]
17+
.Find([request.GetType(), typeof(RESPONSE)], (request, token))!
18+
.Invoke(this, (request, token))!;
19+
1520
public async ValueTask<RESPONSE> Send<REQUEST>(REQUEST request, CancellationToken token = default)
1621
where REQUEST : notnull
1722
{
@@ -74,22 +79,16 @@ public ValueTask<RESPONSE> Send<RESPONSE>(IRequest<RESPONSE> request, Cancellati
7479
{
7580
this.Validate(request);
7681

77-
var requestType = request.GetType();
78-
var sender = this.Request<RESPONSE>();
79-
return (ValueTask<RESPONSE>)sender.GetType().Methods[nameof(sender.Send)]
80-
.Find([requestType, typeof(ValueTask<RESPONSE>)], (null as object, request, token))!
81-
.Invoke(sender, (request, token))!;
82+
var sender = new Sender<RESPONSE>(this, logger, null);
83+
return sender.InvokeSend(request, token);
8284
}
8385

8486
public ValueTask<RESPONSE> Send<RESPONSE>(object key, IRequest<RESPONSE> request, CancellationToken token = default)
8587
{
8688
this.Validate(key, request);
8789

88-
var requestType = request.GetType();
89-
var sender = this.Request<RESPONSE>(key);
90-
return (ValueTask<RESPONSE>)sender.GetType().Methods[nameof(sender.Send)]
91-
.Find([requestType, typeof(ValueTask<RESPONSE>)], (null as object, request, token))!
92-
.Invoke(sender, (request, token))!;
90+
var sender = new Sender<RESPONSE>(this, logger, key);
91+
return sender.InvokeSend(request, token);
9392
}
9493

9594
public void Validate<REQUEST>(REQUEST request)
@@ -127,7 +126,7 @@ public Task _Dispatch<REQUEST>(object? key, REQUEST request, CancellationToken t
127126
catch (AggregateException error)
128127
{
129128
logger?.LogAggregateException(error, "ERROR: {Mediator} rule {Rule}", [nameof(Mediator), ruleName]);
130-
return Task.FromException(error.InnerExceptions.Count == 1 ? error.InnerException! : error);
129+
return Task.FromException(error.InnerExceptions.Count is 1 ? error.InnerException! : error);
131130
}
132131
catch (Exception error)
133132
{

src/TypeCache/TypeCache.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<RootNamespace>TypeCache</RootNamespace>
88
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
99
<PackageId>TypeCache</PackageId>
10-
<Version>10.0.0</Version>
10+
<Version>10.0.1</Version>
1111
<Authors>Samuel Abraham &lt;sam987883@gmail.com&gt;</Authors>
1212
<Company>Samuel Abraham &lt;sam987883@gmail.com&gt;</Company>
1313
<Title>TypeCache Reflection</Title>

0 commit comments

Comments
 (0)