src/Library/NetPro.ResponseCache/PostResponseCacheAttribute.cs

(开头部分) 16KB

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

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Mvc.Formatters;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NetPro.CsRedis;
using NetPro.ShareRequestBody;
using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.Json;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace NetPro.ResponseCache
{
    public enum ResponseMode
    {
        /// <summary>
        /// 缓存,默认
        /// </summary>
        Cache = 0,

        /// <summary>
        /// 报错,触发响应缓存返回400状态码。可用于请求频率的限制,例如一秒中只能请求一次
        /// </summary>
        Error = 1,
    }

    /// <summary>
    /// Post响应缓存
    /// 优先级高于UsePostResponseCache全局Post缓存
    /// </summary>
    /// <remarks>特性方式继承自动生效
    /// Order越小先执行;attribute方式在中间件之后运行</remarks>
    public class PostResponseCacheAttribute : ActionFilterAttribute
    {
        /// <summary>
        /// 是否集群模式,启用分布式Redis功能
        /// </summary>
        public bool Cluster { get; set; }

        public ResponseMode ResponseMode { get; set; } = ResponseMode.Cache;

        /// <summary>
        /// 配合ResponseMode.Error模式使用,当触发缓存时的提示信息
        /// </summary>
        public string Message { get; set; } = "The request has been cached";

        /// <summary>
        /// 缓存持续时长
        /// </summary>
        public int Duration { get; set; }

        ///// <summary>
        ///// 
后面还有 313 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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