- Notifications
You must be signed in to change notification settings - Fork 1.4k
/
Copy pathProgram.cs
47 lines (36 loc) · 1.26 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
varbuilder=WebApplication.CreateBuilder();
builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages();
varapp=builder.Build();
app.UseMiddleware<GreeterMiddleware>();
app.MapRazorPages();
app.Run();
publicclassGreeterMiddleware
{
RequestDelegate_next;
readonlyLinkGenerator_linkGenerator;
publicGreeterMiddleware(RequestDelegatenext,LinkGeneratorlinkGenerator)
{
_next=next;
_linkGenerator=linkGenerator;
}
publicasyncTaskInvokeAsync(HttpContexthttpContext)
{
EndpointendPoint=httpContext.GetEndpoint();
varmessage=endPoint.Metadata.GetMetadata<MessageAttribute>();
if(message!=null)
{
if(httpContext.Request.Method==HttpMethods.Get)
httpContext.Items.Add("GreetingFromMiddleWare",message.ContentGet);
elseif(httpContext.Request.Method==HttpMethods.Post)
httpContext.Items.Add("GreetingFromMiddleWare",message.ContentPost);
}
await_next.Invoke(httpContext);
}
}
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)]
publicclassMessageAttribute:System.Attribute
{
publicstringContentGet{get;set;}
publicstringContentPost{get;set;}
}