.NET – Wolverine-Middleware mit RückgabewertC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 .NET – Wolverine-Middleware mit Rückgabewert

Post by Anonymous »

Ich wechsle von MediatR zu Wolverine. Es ist praktisch in der Anwendung. Allerdings bin ich auf ein Problem gestoßen. Ich möchte Middleware hinzufügen, um die Autorisierung zu überprüfen, bevor ich den Handler verwende. Was auch kein Problem ist. Das Problem besteht jedoch darin, ein Ergebnis direkt von der Middleware zurückzugeben. Was normalerweise in MediatR (Verhalten) möglich ist.
Die Frage ist also: Gibt es eine elegante Möglichkeit, ein Ergebnis direkt von der Middleware zurückzugeben?
Ich habe die Wolverine-Dokumentation gelesen und alle möglichen Variationen ausprobiert, aber nichts hat geholfen. Wenn ich mich nicht irre, ist es möglich, das Middleware-Ergebnis als Handler-Parameter zurückzugeben, aber das erscheint mir äußerst unansehnlich. Ich müsste dann jeden Handler prüfen lassen, ob er etwas usw. und andere Probleme enthält.
Ich möchte die Wolverine.HTTP-Bibliothek nicht verwenden. Ich werde diese Logik an anderen Stellen als WebApi verwenden.
OutputDto

Code: Select all

public class OutputDto
{
public bool Valid { get; set; }
}
MyHandler

Code: Select all

public class MyHandler
{
public Task Handle(InputDto input)
{
return Task.FromResult(new OutputDto() { Valid = true });
}
}
MyMiddleware

Code: Select all

public class MyMiddleware
{
public async Task BeforeAsync(InputDto input)
{
return (HandlerContinuation.Stop, new OutputDto() { Valid = false });
}
}
Controller – Aktion ruft Middleware auf und gibt null zurück

Code: Select all

private readonly IMessageBus _bus;

public WeatherForecastController(IMessageBus bus)
{
_bus = bus;
}

[HttpGet(Name = "GetWeatherForecast")]
public async Task Get()
{
var a = await _bus.InvokeAsync(new InputDto { Id = 5 });

return a;
}
Registration

Code: Select all

builder.UseWolverine(options =>
{
options.Policies.AddMiddleware();
});
Vielen Dank

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post