Nexpress/Application.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace Nexpress
{
    public class Application
    {
        private IList<Func<RequestDelegate, RequestDelegate>> middlewareList = new List<Func<RequestDelegate, RequestDelegate>>();
        private readonly List<RouteData> _routersList = new List<RouteData>();

        private RequestDelegate Last = (req, res) =>
        {
            return Task.CompletedTask;
        };
        
        public void Use(Func<Request, Response, RequestDelegate, Task> func)
        {
            Func<RequestDelegate, RequestDelegate> middleware = (next) =>
            {
                return new RequestDelegate((req, res) =>
                {
                    return func(req, res, next);
                });
            };
            middlewareList.Add(middleware);
        }

        public void Run(Func<Request, Response, Task> last)
        {
            Func<RequestDelegate, RequestDelegate> middleware = (next) =>
            {
                return new RequestDelegate(last);
            };
            middlewareList.Add(middleware);
        }

        public void Get(string route, Func<Request, Response, Task> handlers)
        {
            Bind("Get", route, new RequestDelegate(handlers));
        }

        public void Post(string route, Func<Request, Response, Task> handlers)
        {
            Bind("Post", route, new RequestDelegate(handlers));
        }

        public void Put(string route, Func<Request, Response, Task> handlers)
        {
            Bind("Put", route, new RequestDelegate(handlers));
        }

        public void Delete(string route, Func<Request, Response, Task> handlers)
        {
            Bind("Delete", route, new RequestDelegate(handlers));
后面还有 93 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。