从0到1,为ASP.NET Core项目添加redis支持(全程使用copilot编码)

当 AI 生成代码:Copilot 在 C# 项目中的实战评测 GitHub Copilot 是由 GitHub 和 OpenAI 合作开发的一款基于 AI 的编程助手。它利用深度学习模型(特别是 OpenAI Codex)来分析代码上下文并提供自动化的代码建议。Copilot 不仅能够补全代码,还能生成函数、类,甚至是完整的代码块,使开发者能更加高效地进行编码工作。 阅读详情

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近做需求需要用到redis,之前只在java用过,c#的使用还不清楚,故总结记录一下工作流。全程使用copilot进行代码编写


一、需求背景

需求是一个简单的获取token的需求,token获取需要经过http调用第三方系统,故为了减少http调用,设置redis来缓存token数据。


二、询问copilot工作流

1.简单询问

上来就先简单问问,如何导入redis:
在这里插入图片描述
可以看到,由于是刚开始发起提问,没有上下文,它给我整个了python的,我需要c#的,故继续提问。
在这里插入图片描述
这次是c#的方法了,但是更类似那种自己测试来玩玩的写法, 不符合我们的ASP.NET Core项目需求,故再次具体提问。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,这次的回答就比较具体了,从appsetting配置,到startup的注入,到实际代码里面的使用(他这里是直接在controller里面使用,我们一般还是建个RedisHeloer工具类来统一使用,后面再具体询问这方面)都有给出。至此,理论上是可以完整的测试并使用redis了,但是,我们还需了解更多细节才能应用到自己的代码里。

2.细节询问

我们可以注意到,虽然上一步中给出了大体使用步骤,但是还有一些地方的细节是模糊不清的,比如这个redis的ConnectionString,就写得比较不清不楚,一个localhost,显然不能满足需求
在这里插入图片描述
故就此细节再次进行提问:
在这里插入图片描述
在这里插入图片描述
这次的回答就比较具体了,从中我们可知redis链接串还可以指定端口号,指定密码,指定数据库等属性,最终我们也是直接采用了它给出的完整配置。

至此,对应到我们的项目中,已经添加了如下代码:

首先是appsetting文件,定义了链接串:

  "Redis": {
   
   
    "ConnectionString": "localhost:6379,password=yourpassword,ssl=False,abortConnect=False,defaultDatabase=0"
  }

然后是startup文件,定义了redis链接的注入,以及我们redis工具类的注入:

    public static void ConfigureServices(IServiceCollection services,
        IConfigurationManager configuration)
    {
   
   

        // redis setting
        var redisConnectionString = configuration.GetSection("Redis:ConnectionString").Value;
        services.AddSingleton<IConnectionMultiplexer>(ConnectionMultiplexer.Connect(redisConnectionString));
        services.AddScoped<RedisHelper>();

    }

完成基础的配置跟注入后,就是具体的功能方法的提问,
在这里插入图片描述
在这里插入图片描述

现在我需要一个方法,可以做到redis有值的时候取值,无值的时候调用我传入的方法获取值,并set到redis去。可以看到,copilot给我返回了一个代码,但是注意,里面涉及了序列化与反序列化方法,并没有实现,我们可以继续就此追问。
在这里插入图片描述
在这里插入图片描述
这里它 给出了两种实现json序列化与反序列化的两种方式,System.Text.Json 和 Newtonsoft.Json ,我这里使用 Newtonsoft.Json 。
同时,我们设置rediskey跟value的时候,需要考虑过期时间,故继续询问如何设置过期时间。
在这里插入图片描述
在这里插入图片描述
可以看到,我们可以用StringSet方法来设置过期时间,它接收TimeSpan类型的参数。为了代码方便管理,像redis的过期时间,还有前面提到的rediskey,一般都是定义好常量,直接使用,而TimeSpan类型,由于不能设置成常量,所以我们把常量定义为过期时间的数值。

至此,对应到我们的项目中,又新添加了如下代码:
定义常量的静态类,定义了key跟过期时间。过期时间设置为3500s,是因为我们调用http接口获取的token过期时间是3600s,这样能保证让时间全覆盖

    public static class RedisConstants
    {
   
   
        public static class RedisKeys
        {
   
   
            public const string CRM_ADMIN_TOKEN_KEY = "crm_admin_token_key";
        
Java与.NET技术栈深度对比:从JVM到.NET Runtime的工程实践差异 Java和.NET作为企业级开发两大主流技术栈,其本质差异远不止于语法或语言特性,而根植于底层运行时设计哲学——JVM强调内存模型共识与系统级调优能力,.NET Runtime则依托跨平台重构与工具链深度集成。这种差异直接塑造了各自的依赖管理机制(Maven中央治理 vs NuGet联邦自治)、架构演进路径(Spring Boot约定优于配置 vs ASP.NET Core显式即正义)以及生产就绪能力(Actuator全息监控 vs Health Checks分层诊断)。在云原生、信创适配与AI编码辅助等新 阅读详情

相关推荐

.NET真实生产环境避坑指南:DI陷阱、EF Core幽灵查询与配置热更新

在.NET技术栈中,Minimal API、依赖注入(DI)和EF Core是构建现代Web服务的核心基础组件。然而,官方文档常默认理想化运行环境,而真实生产场景面临Linux容器约束、混合架构演进、内存泄漏与配置动态变更等复杂挑战。理解Scoped服务在BackgroundService中的生命周期失控原理,可避免数据库连接池耗尽;掌握AsNoTracking()的并发安全边界,能防止幽灵查询引发的数据覆盖;实现Environment变量的定时刷新机制,则解决了K8s ConfigMap更新不生效的‘最后

ciyinzhi8788的博客 404

AI驱动构建企业级.NET WebAPI框架:从架构设计到代码生成全流程

在软件开发领域,构建一个健壮、可维护的后端服务是许多团队面临的核心挑战。其关键在于采用清晰的分层架构和统一的编码规范,这不仅能提升代码质量,还能显著降低长期维护成本。通过结合领域驱动设计(DDD)和仓储模式等成熟实践,开发者可以创建出高内聚、低耦合的系统。随着人工智能技术的普及,AI代码生成工具为这一过程带来了革命性的效率提升。这些工具能够辅助开发者快速生成符合预设规范的代码骨架,确保架构一致性,特别适用于需要快速启动新项目或统一团队编码风格的场景。本文将以.NET 10和Entity Framework

wangqiaowqo的专栏 447

AI赋能.NET分库分表实战:构建高性能WebAPI架构

分库分表是解决海量数据存储与访问性能瓶颈的核心分布式架构方案,其原理基于“分而治之”思想,通过将逻辑大表按分片键拆分到多个数据库或表中,分散单点压力。这一技术能显著提升系统吞吐量、解决连接数瓶颈,并支持水平扩展,在电商、金融等高并发场景中价值巨大。在实际工程实践中,结合Entity Framework Core等ORM框架时,需要借助分库分表中间件实现透明化数据路由。本文以ShardingCore为例,演示如何通过AI工具辅助设计分片策略、生成路由代码、优化跨表查询,将分库分表架构与.NET WebAPI项

weixin_34268169的博客 378

C# 程序员的福音还是噩梦?Copilot 插件在 Visual Studio 中的深度解析与实战指南

Copilot 是一个基于 OpenAI 的 Codex 模型的智能代码生成插件,它能够在你编写代码时提供实时的代码建议和补全。简单来说,它就像一个虚拟的编程助手,能够根据你输入的注释或代码片段,自动生成完整的代码块。

java专栏 2162

详解Asp.net Core 使用Redis存储Session

本篇文章主要介绍了Asp.net Core 使用Redis存储Session ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。

音视频入门:H264、H265概念总结

添加链接描述 什么是H.264与H.265 H.264与H.265都是视频压缩格式,由于视频本身的码流太大,所以需要经过压缩然后再通过网络进行传输。H.264是目前比较主流的压缩算法,像视频会议设备一般都采用这个编码格式。基础的H.264可以支持在1M带宽下传输720P30帧/秒的图像;H.264 HIGH PROFILE支持在512K带宽下传输720P30帧/秒的图像。 H.265是比较新的压缩算法,可以更一步提高压缩比,随着我们现在生活中出现的视频格式越来越大(比如现在基本都是1080P甚至4K的显示器

weixin_40673765的博客 8937

MATLAB三元相图实战:从数据准备到高级可视化技巧全解析

本文深入解析了如何使用MATLAB绘制专业的三元相图(ternary plot)。文章从数据归一化、范围映射等预处理技巧入手,详细介绍了散点图、等高线图、凸包计算等高级可视化方法,并提供了多数据集对比与出版级图表美化的实战指南,帮助科研与工程人员高效呈现复杂的三元数据关系。

spark7igniter的博客 258

Sparse-ICP—(4) 加权稀疏迭代最近点算法(matlab版)

本文介绍了加权稀疏迭代最近点算法的实现。

点云侠的博客 642

虚拟电厂功率预测最佳实践白皮书

虚拟电厂(VPP)通过聚合分散的可再生能源资源,为电网提供可观测、可调度和可交易的解决方案。本文提出了一套功率预测方法论,并给出LSTM实现脚本,涵盖资源接入、数据治理、预测模型设计及市场交易闭环。针对风-光-储-负荷混合场景,该方法论强调轻量化部署和滚动优化,可有效提升预测精度和调度收益。未来研究将融合深度气象预报和强化学习,进一步优化VPP的协同调度能力。

专注AI大模型,软件混淆,授权 377

Qt 调用YOLO模型(代码)

本文介绍了如何在 Qt C++ 环境中集成 YOLO 模型进行目标检测,包括模型封装、界面设计和实时处理等关键步骤。通过这种方法,你可以快速开发出具有目标检测功能的 Qt 应用程序,应用于监控系统、机器人视觉、图像分析等多个领域。

轩宇的博客 259

智能车复工日记【3】:图像处理——基本扫线和基本特征提取和十字补线

目录前言基本扫线(除了进入环岛状态或者坡道或者十字路口的普通扫线)基本数据和初步特征进一步特征提取1、计算并且显示前n行左右线各丢失数目(不break和break的都有)2、计算左右线方差(以右线为例)【a】计算右线曲率(选三个点:r_start、中点、break点)【b】如果右线曲率在一定的范围,就进行右线拟合,从空白行开始计算斜率,否则则从0行开始计算 前言 图像大小185*70,通过扫线获取.........

hanhan的博客 3万+

CMake入门教程【基础篇】在Windows、Linux上安装CMake

CMake如何下载与安装

小鱼酱的博客 2727

YOLOv8 置信度阈值 (conf) 和 IoU 阈值 (iou) 详解:如何平衡漏检与误检?

摘要 本文深入探讨了YOLOv8目标检测模型中两个关键参数——置信度阈值(conf)和IoU阈值(iou)的核心作用。文章从目标检测的基础概念出发,解释了置信度分数反映模型预测可靠性,IoU衡量预测框重叠程度。重点剖析了非极大值抑制(NMS)机制如何通过这两个阈值进行预测框筛选:置信度阈值作为初筛门槛,IoU阈值决定重叠框的取舍。通过生动比喻和可视化图表,阐述了合理调节这两个参数能有效平衡误检与漏检问题,是优化YOLOv8模型实际表现的重要技巧。全文以实践为导向,帮助开发者掌握成为"调参大师&qu

深耕 Vue 生态与 JS/TS 技术,聚焦组件封装、响应式原理、TS 类型设计,解析工程化配置与性能优化方案。同时分享 YOLOv8 目标检测实战、AI 大模型面试核心考点,以代码实例拆解技术实现与业务解法。 1249

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 一次copilot问题处理
programing_pig
博客等级 码龄9年 26粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值