- 博客(10)
- 收藏
- 关注
原创 C# 模拟Http请求
因为本人用的是WebRequest,所以可能WebRequest那写的较详细,封装的两个方法基本上大多数场景都通用哦,如有疑问可以直接私信哦,这里我也推荐大家可以去了解下Post的几种数据传输方式方便更好的理解本片文章哦~,那本章就到此结束啦。我封装两个方法,用于处理post数据传输方式,Post Body form-data 传值形式专用, application/json 这两种常用的,话不多说直接上代码。
2024-11-28 15:21:10
309
原创 基于NPOI封装导出Excel方法
在工作中我们有一个很常见的业务场景:导出列表的数据,生成Excel,而使用NPOI生成Excel我们也会遇到一个问题,每遇到一个不同的类导出时都要生成不同的表头,行,列,但其实里面大部分代码都是冗余的,所以这时我就想到了一个点子,通过泛型和反射整一个通用的导出方法.需要注意的是,生成的表头,为类字段的名称,导出的Dto字段名称可以写成中文的,如果不想在代码中出现中文,可以再加一个List<string> heads//表头的参数,更改掉生成表头那段代码.代码环境使用的是.Net 6.0,
2024-11-28 15:14:00
359
原创 .Net 6.0全局异常捕获
我们可以通过请求管道达到我们全局的一个场景,所以我们第一步就是在请求管道中自定义一个全局异常捕获的中间件,并通过try catch来实现,是不是特别简单,好话不多说下面就带着各位步入正题!全局异常捕获是我们开发当中不可获取的一个环节,顾名思义就是全局的捕获异常,并响应出去,今天就带着各位童鞋们在.Net 6.0当中如何做到全局异常捕获.在这里本章节就结束了,希望对在坐的各位童鞋有所帮助,当然如果有发现不足或者不对的地方也欢迎探讨,及时指正!到这里其实我们已经实现了一个全局异常捕获了,我们一起来看看效果吧!
2024-11-28 15:11:35
377
原创 .Net 6.0中使用JWT加密
总的来说,JWT 加密原理就是通过将头部和载荷进行 Base64Url 编码,然后使用指定的加密算法和密钥对其进行加密生成签名,最后将签名加入到 JWT 中。签名: JWT 签名是对头部和载荷进行加密生成的,用于验证 JWT 的合法性。载荷: JWT 载荷是 JWT 的主要内容,一般由一些声明和用户自定义的数据组成,这些声明包括用户 ID、过期时间、权限等。在验证 JWT 时,需要使用同样的密钥和算法对头部和载荷进行验证,验证通过即表示 JWT 是合法的,否则是无效的。
2024-11-28 15:08:00
871
原创 .Net 6.0定义全局当前身份缓存对象
当前身份缓存对象顾名思义就是:当前登录的用户身份对象,那它解决了什么问题呢?其实在我们日常开发过程中经常能用的到几乎是必备的,就比如我给某个表插入数据时需要创建人或者一些权限的访问,都得用到当前身份缓存对象,当然啦今天的博客就是因为我们公司研发部门刚成立不久所以导致很多项目不完善,我在开发过程中就遇到了没有当前身份缓存对象的问题,开发极其不方便啊哈哈,所以我打算自己整一个,所以就有了今天的这篇文章,希望在对屏幕前的你也有所帮助!!
2024-11-28 15:02:49
423
原创 .Net 6.0 部署Linux+Nginx +PM2教程
哈哈哈开个玩笑,因为工作最近接手的项目是部署到Linux中,需要使用到Linux , Nginx和PM2 的一些操作,我就开始倒腾了一两天试试能不能把自己的项目也整一套放到Linux中,Linux 在日常工作中可以说是非常普遍,也是主流,看一百遍不如做一遍,所以希望还没有接触到的童鞋,看完这篇文章后也能去试着部署一下,一起进步!,这个的if的意思是只有开发环境才会执行,如没有拿出来,即便发布成功也无法访问Swagger UI,本人就被这个小问题折磨了有一上午!好了,我们终于到了最后一步了!
2024-11-28 14:54:00
1932
原创 c#中使用lock创建一个简单的队列示例
虽然使用锁可以实现线程安全的队列,但在高并发场景下,锁的开销可能比较高。如果需要高并发性能可以考虑使用无锁队列如 .NET 中的。好的终于到了大家伙最不舍的总结环节,那让我来总结一下吧!如下是在Program中调用代码,代码细节请查看注释。1.首先我们创建一个简单的队列帮助类如下图。)或其他更复杂的并发控制机制来优化性能。1.订单处理和物流管理。
2024-11-28 14:46:57
419
原创 LeetCode第31题:“下一个排列“ C#篇
完成交换操作后,对于该破坏升序元素后面的那部分元素,原本如果采用常规的排序算法,比如归并排序或者快速排序(平均情况),它们的时间复杂度会是 O(klogk),这里的 k;综合来看,前面查找破坏升序元素以及寻找交换元素等操作的时间复杂度都是基于 O(n)的,而后续处理破坏升序元素后面部分元素的反转操作时间复杂度为O(k),由于k是小于等于n的(k代表数组后半部分元素长度),在渐进分析中,整个算法的时间复杂度主要取决于前面O(n)的部分,所以最终整个代码实现 下一个排列功能的时间复杂度为O(n)。
2024-11-28 14:40:13
1883
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人