Konvertieren des Lambda-Ausdrucks in eine benannte MethodeC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Konvertieren des Lambda-Ausdrucks in eine benannte Methode

Post by Anonymous »

Das Folgende ist Teil der Ausführungssequenz, wenn eine Middleware in ASP.NET Core konfiguriert wird –

Code: Select all

// my code
app.Use(some middleware);

// class UseExtensions / namespace Microsoft.AspNetCore.Builder
public static IApplicationBuilder Use(this IApplicationBuilder app, Func middleware)
{
return app.Use(next => context => middleware(context, next));
}

// class WebApplication / namespace Microsoft.AspNetCore.Builder
public IApplicationBuilder Use(Func middleware)
{
ApplicationBuilder.Use(middleware);
return this;
}
Ich habe versucht zu verstehen, wie der Lambda-Ausdruck funktioniert -

Code: Select all

next => context => middleware(context, next)
(wird als Parameter in der zweiten Methode oben verwendet) entspricht -

Code: Select all

Func middleware
Vielleicht liegt es an meinem mangelnden Verständnis von Lambdas, aber es fällt mir schwer, mich damit zu befassen, wenn ich versuche, den Lambda-Ausdruck in eine benannte Methode umzuwandeln, damit ich den Methodennamen stattdessen an app.Use() übergeben kann.
Könnte mir bitte jemand etwas Licht ins Dunkel bringen, was die mögliche Implementierung einer solchen benannten Methode sein könnte?

Code: Select all

public static IApplicationBuilder Use(this IApplicationBuilder app, Func middleware)
{
// here I want to pass a method name as parameter instead of the lambda-expression
return app.Use(next => context => middleware(context, next));
}
Ist das überhaupt möglich? Wenn nicht, warum?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post