自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(553)
  • 收藏
  • 关注

原创 程序启动添加全局异常捕获和Dump日志记录

Dump日志记录/// <summary> /// 功能描述:程序全局异常捕获Dump文件记录 /// </summary> public static class MiniDump { [Flags] public enum Option : uint { // From dbghelp.h: ...

2024-01-04 15:32:00 409 1

原创 断点下载帮助方法

核心代码public static class DownloadHelper { /// <summary> /// 断点下载 /// </summary> /// <param name="controller"></param> /// <param name="fullpath"&g...

2023-10-19 13:55:00 127

原创 经纬度帮助类

核心代码/// <summary>/// 点位信息/// </summary>[DataContract]public class DPoint{ /// <summary> /// x坐标,对应经度 /// </summary> public double x; /// <summary...

2023-10-19 13:42:00 106

原创 地图坐标转换

核心代码/// <summary> /// 地图坐标转换 /// </summary> public class Map { /****************************************************/ #region 坐标转换 private const double pi = 3.141592...

2023-10-19 09:08:00 106

原创 GPS帮助类

核心代码public class GpsHelper { private const double EARTH_RADIUS = 6378137; /// <summary> /// 计算两点位置的距离,返回两点的距离,单位 米 /// 该公式为GOOGLE提供,误差小于0.2米 /// </summary> ...

2023-10-18 09:37:00 48

原创 压缩文件帮助类

核心代码public class ZipHelper { #region 基础参数 public delegate void UnZipProgressEventHandler(object sender, UnZipProgressEventArgs e); public event UnZipProgressEventHandler unZipP...

2023-10-18 09:36:00 38

原创 ZXing.Net 的Core平台生成二维码

一、引用二、代码帮助类/// <summary> /// ZXing.NET 二维码帮助类 /// </summary> public class ZXingHelper { /// <summary> /// 站点二维码的目录 /// </summary> private s...

2023-10-18 09:34:00 568

原创 基于ZXing.NET实现的二维码生成和识别客户端

一、前言ZXing.Net的一个可移植软件包,是一个开源的、多格式的1D/2D条形码图像处理库,最初是用Java实现的。已经过大量优化和改进,它已经被手动移植。它与.Net 2.0、.Net 3.5、.Net 4.x、.Net 5.x、.Net 6.x、.Net 7.x、Windows RT类库和组件、UWP、.Net Standard 1.x和2.0x、.Net Core App 3.x、S...

2023-10-13 13:23:00 310

原创 国庆期间“头像+国旗”玩法是如何实现的?

前言随着一年一度的国庆假期越来越近,身边的国庆氛围也越来越重,很多人也开始换上了渐变国旗头像,提前为祖国母亲庆生。那每年都很火的渐变国旗头像要如何制作呢?其实一点也不难!接下来就分享一种渐变国旗头像生成方法。制作原理上传原始微信或其他头像,将头像的Image对象用Graphics创建返回GDI+对象,然后用GDI+对象在原始头像指定位置进行追加绘制指定大小的图像渲染显示。项目架构设计演...

2023-09-28 11:14:00 31

原创 【23种设计模式】外观模式(十)

前言外观模式,英文名称是:Facade Pattern。我们先从名字上来理解一下“外观模式”。我看到了“外观”这个词语,就想到了“外表”这个词语,两者有着很相近的意思。就拿谈恋爱来说,“外表”很重要,如果第一眼看着很舒服、有眼缘,那就有交往下去的可能。如果长的“三寸钉、枯树皮”,估计就够呛了。在这方面,“外观”和“外表”有着相同的作用。在软件系统中,要完成一个功能,需要很多接口调用,不仅增加了...

2023-09-26 15:22:00 25

原创 WebApi中添加Jwt鉴权

前言JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。一个 JWT 实际上就是一个字符串,它由三部分组成,头部、载荷与签名。前两部分需要经过 Base64 编码,后一部分通过前两部分 Base64 编码后再加密而成。针对前后端分离的项目,大多是通过 token 进行身份认证来进行交互,今天将介绍一种简单的创建 和验证...

2023-09-26 08:16:00 164 2

原创 【工具分享】视频号下载助手,亲测免费可用

前言当你在休闲刷视频号中的时候,不知是否有存如下这种情况:总有一瞬间,刷到了触动你心灵的视频,比如:美景、美食、笑话、民谣和段子,又或者是名人格言、人生感悟和治愈系视频。此时你非常想把视频下载下来,分享下朋友圈或发给你的朋友、死党或者闺蜜。对于分享欲极强的我来说,这种情况经常会在我身上发生。众所周知,微信视频号并没有提供下载按钮或者下载链接,无法进行下载。遇到上面这种情况,想下载分享又该怎么...

2023-09-23 15:38:00 518

原创 基于百度AI实现文字和图像敏感内容审核

前言百度AI是指百度公司的人工智能技术全称。它采用深度学习技术,包括自然语言处理、语音识别、计算机视觉、知识图谱等,可应用于各个领域如互联网、医疗、金融、教育、汽车、物流等。百度AI的发展将帮助人类更好地理解世界和提高生活品质,接下来就通过一个小案例演示实现百度AI在文字和图像敏感审核应用。项目准备1.注册并登录百度智能云账号官方地址:https://cloud.baidu.com/...

2023-09-19 14:50:00 664

原创 基于 ActionFilters 的限流库DotNetRateLimiter使用

前言在构建API项目时,有时出于安全考虑,防止访问用户恶意攻击,希望限制此用户ip地址的请求次数,减轻拒绝服务攻击可能性,也称作限流。接下来,我们就来学习开源库DotNetRateLimiter 如何轻松实现限流。项目使用配置安装Nuget包在新建立的WebAPI项目中,通过Nuget包管理器安装DotNetRateLimiter,安装命令:NuGet\Install-Package...

2023-09-18 08:14:00 53

原创 C#反射实现插件式开发

前言插件式架构,一种全新的、开放性的、高扩展性的架构体系。插件式架构设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。基于插件设计并不神秘,相反它比起一团泥的设计更简单,更容易理解。项目介绍书写4个插件类库,分别传参实现“加减乘除”运算,调用插件的客户端采用Winform窗体程...

2023-09-15 23:49:00 325

原创 【23种设计模式】装饰模式(九)

前言装饰模式,英文名称:Decorator Pattern。我第一次看到这个名称想到的是另外一个词语“装修”,我就说说我对“装修”的理解吧,大家一定要看清楚,是“装修”,不是“装饰”。在房子装修的过程中,各种功能可以相互组合,来增加房子的功用。类似的,如果我们在软件系统中,要给某个类型或者对象增加功能,如果使用“继承”的方案来写代码,就会出现子类暴涨的情况。比如:IMarbleStyle是大理...

2023-09-12 09:46:00 103

原创 【23种设计模式】组合模式(八)

前言组合模式,英文名称是:Composite Pattern。当我们谈到这个模式的时候,有一个物件和这个模式很像,也符合这个模式要表达的意思,那就是“俄罗斯套娃”。“俄罗斯套娃”就是大的瓷器娃娃里面装着一个小的瓷器娃娃,小的瓷器娃娃里面再装着更小的瓷器娃娃,直到最后一个不能再装更小的瓷器娃娃的那个瓷器娃娃为止。在我们的操作系统中有文件夹的概念,文件夹可以包含文件夹,可以嵌套多层,最里面包含的是...

2023-09-11 13:14:00 284

原创 最全最详细的C++基础总结

C++基础整理总结

2023-09-09 13:45:51 186 1

原创 基于阿里云服务实现短信验证码功能

阿里云实现短信验证码

2023-09-07 08:48:10 267 1

原创 【23种设计模式】桥接模式(七)

前言【桥接模式】是【结构型】设计模式的第二个模式,也有叫【桥模式】的,英文名称:Bridge Pattern。大家第一次看到这个名称会想到什么呢?我第一次看到这个模式根据名称猜肯定是连接什么东西的。因为桥在我们现实生活中经常是连接着A地和B地,再往后来发展,桥引申为一种纽带,比如:丝绸之路是连接亚洲和欧洲的桥梁。桥是针对桥的使用环境来说的,解决了跨越和衔接的问题。在设计模式中的【桥模式】也有...

2023-09-05 16:25:00 18

原创 深浅拷贝知多少?

众所周知,C#中有两种类型变量:那就是值类型和引用类型。对于值类型而言,copy就相当于是全盘复制了,真正的实现了复制,属于深拷贝;而对于引用类型而言,一般的copy只是浅拷贝,只是copy到了引用对象的地址,相当于值传递了一个引用指针,新的对象通过地址引用仍然指向原有内存中的对象。​浅拷贝:只复制对象的基本类型、对象类型、仍然属于原引用,也称为影子克隆;​深拷贝:不止复制对象的基本类,同时也复制原对象中的对象,完全就是新对象产生的,也称为深度克隆;

2023-09-01 21:57:46 53

原创 将博客搬至CSDN

声明技术在于分享,为了让更多的IT工作者看到和学习到本人分享的技术文章,从即日起,本人将本博客中分享的技术文章,同步到CSDN平台。同时也仍然会继续在本平台创作分享,希望大家多多支持!同步CSDN账号地址CSDN账号1:努力搬砖的阿亮CSDN账号2:码农阿亮...

2023-09-01 16:37:00 22

原创 【23种设计模式】适配器模式(六)

前言从今天开始我们开始讲【结构型】设计模式,【结构型】设计模式有如下几种:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。【创建型】的设计模式解决的是对象创建的问题,那【结构型】设计模式解决的是类和对象的组合关系的问题。今天我们就开始讲【结构型】设计模式里面的第一个设计模式,中文名称:适配器模式,英文名称:Adapter Pattern。说起这个模式其实很简单,在现实...

2023-09-01 11:17:00 19

原创 【Visual Studio 使用技巧分享】任务列表的使用

前言Visual Studio 开发工具的熟练使用,能够潜在的提升我们工作效率,而且一些开发技巧的使用,会让我们的工作显得那么方便快捷。那么你知道VS中有哪些你不知道的使用小技巧呢?接下来,我们就来探索VS中的“任务列表”的使用。 任务列表是使用 TODO 、 HACK 或自定义令牌等令牌的代码注释,还能管理直接导向代码中的预定义位置的快捷方式,选择列表中的项以转到其在源代码中的位置。任务列...

2023-08-31 16:50:00 126

原创 【23种设计模式】原型模式(五)

前言在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这就会增加创建类的复杂度和创建过程与客户代码复杂的耦合度。如果采用工厂模式来创建这样的实例对象的话,随着产品类的不断增加,导致子类的数量不断增多,也导致了相应工厂类的增加,维护的代码维度增加了,因为有产品和工厂两个维度了,反而增加了系统复杂程度,所以在这里使用...

2023-08-31 08:45:00 19

原创 【23种设计模式】建造者模式(四)

前言在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?那就是今天分享的建造者模式,又叫生成器模式,英文名称是Build...

2023-08-29 15:48:00 22

原创 NuGet常用基本配置和命令

常用基本配置项<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <!--项目支持的框架版本--> <TargetFrameworks> net35; net40; net45; net451; net452; net46; net461; ...

2023-08-29 10:47:00 160

原创 【23种设计模式】抽象工厂模式(三)

前言在抽象工厂模式开篇之前,我们先思考一个问题,如果我们要设计一套房子,其他的组件暂时不考虑,我们仅仅考虑房顶、地板、窗户、房门进行设计。什么样的风格暂时未知,可能会有很多种类。可以先设计一套古典风格的房子,再设计一套现代风格的房子,再设计一套欧式风格的房子....这么多套房子需要设计,需求不断变化,我们该怎么才能后期的维护和扩展就更有利呢?那当然是减少客户端代码与具体产品类之间的依赖,降低了...

2023-08-29 10:46:00 17

原创 【23种设计模式】工厂方法模式(二)

前言在讲述之工厂方法模式前,我们来先了解简单工厂模式,简单工厂模式是最简单的设计模式之一,它虽然不属于GoF的23种设计模式,但是应用也较为频繁,同时它也是学习其他创建型模式的基础。下面我们来先了解下简单工厂模式,然后针对它的缺点来引出工厂方法模式。简单工厂模式定义简单工厂模式简单来说就是创建一个工厂类,通过输入的参数创建对象赋值给基类,完成对想要的派生类的调用,从而达成目标,具体的操作均...

2023-08-27 21:23:00 25

原创 【23种设计模式】单例模式(一)

前言:  单例模式是创建型模式5种中的第1种,关注对象的创建, 保证一个类仅有一个实例,并且提供一个全局访问点。在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。如何绕过常规的构造器,提供一种机制来保证一个类只创建一个实例?一、应用场景:要求生产唯一序列号。WEB 中的计数器,比如不用每次刷新都在数据库里加一次,用单例...

2023-08-26 17:38:00 15

原创 【23种设计模式】设计模式综述(开篇)

一、设计模式概述:​ 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代...

2023-08-26 17:32:00 16

原创 ASP.NET Core实时库SignalR简单应用

一、什么是SignalR:SignalR 是用于构建需要实时用户交互或实时数据更新的Web 应用程序的一个开放源代码.NET 库。不仅仅用在Web应用中,后面会讲到它的应用范围。它简化了简化了构建实时应用程序的过程,包括ASP.NET Server库和JavaScript Client库,以便管理Client与Server连接并将内容更新推送给Client。SignalR可用于需要实时刷新获...

2023-08-25 09:34:00 354

原创 Docker 安装 OpenResty教程

Docker 部署1.拉取镜像PS C:\Users\Administrator> docker pull openresty/openresty2.启动openrestyPS C:\Users\Administrator> docker run -d --name openresty -p 9000:80 openresty/openresty3.创建挂载目录PS C:...

2023-08-24 12:13:00 410

原创 Docker 安装 Nginx 教程

Docker 安装1.拉取镜像PS C:\Users\Administrator> docker pull nginx2.创建挂载目录PS C:\Users\Administrator> mkdir -p /docker/nginx/confPS C:\Users\Administrator> mkdir -p /docker/nginx/logsPS C:\Use...

2023-08-24 09:17:00 245

原创 React Router 6 快速上手

1.概述React Router 以三个不同的包发布到 npm 上,它们分别为:react-router: 路由的核心库,提供了很多的:组件、钩子。react-router-dom: 包含react-router所有内容,并添加一些专门用于 DOM 的组件,例如 <BrowserRouter>等 。react-router-native: 包括react-router所...

2023-08-24 08:32:00 21

原创 结果过滤器—MVC项目中结果过滤器(Result Filter)使用

一、什么是结果过滤器?结果过滤器(ResultFilter),是对执行的Action结果进行处理的一种AOP思想,适用于任何需要直接环绕 View 或格式化处理的逻辑。结果过滤器可以替换或更改 Action 结果。在 IActionResult 执行的前后执行,使用它能够控制Action的执行结果,比如:格式化结果等。需要注意的是,它只有在Action方法成功执行完成后才会运行。 一般项目中很...

2023-08-16 12:11:00 189

原创 异常过滤器—MVC中异常过滤器使用

一、什么是异常过滤器?异常过滤器(Exception Filters)是 ASP.NET Core 中用于处理全局异常的机制。它们允许你在发生异常时捕获、处理和记录异常,并提供自定义的异常处理逻辑。异常过滤器在整个应用程序范围内生效,可以用于处理各种异常情况。用于实现常见的错误处理策略,没有之前和之后事件,处理 Razor 页面或控制器创建、模型绑定、操作过滤器或操作方法中发生的未经处理的异常...

2023-08-15 16:44:00 81

原创 .NET爬取美图官网首页数据实战

前言:  在当今信息化社会,网络数据分析越来越受到重视。而作为开发人员,掌握一门能够抓取网页内容的语言显得尤为重要。在此篇文章中,将分享如何使用 .NET构建网络抓取工具。详细了解如何执行 HTTP 请求来下载要抓取的网页,然后从其 DOM 树中选择 HTML 元素,进行匹配需要的字段信息,从中提取数据。一、准备工作:创建项目:​ 创建一个简单的Winfrom客户端程序,我使用的是...

2023-08-14 12:19:00 22

原创 资源过滤器—MVC中使用资源过滤器实现不执行Action方法体读取缓存信息返回

前言上两篇文章分享了过滤器实现JWT进行鉴权,分别是通过授权过滤器和操作过滤器实现,这两个过滤器也是最常用的。文章链接:授权过滤器—MVC中使用授权过滤器实现JWT权限认证,操作过滤器—MVC中使用操作过滤器实现JWT权限认证,接下来将简单的谈谈资源过滤器在MVC中如何使用,一般项目中这个过滤器很少用到。一、什么是资源过滤器?过滤器(Filter)是 AOP(面向切面编程) 思想的一种实现...

2023-08-11 09:17:00 44

原创 操作过滤器—MVC中使用操作过滤器实现JWT权限认证

前言上一篇文章分享了授权过滤器实现JWT进行鉴权,文章链接:授权过滤器—MVC中使用授权过滤器实现JWT权限认证,接下来将用操作过滤器实现昨天的JWT鉴权。一、什么是操作过滤器?​ 与授权过滤器大部分一样,只是执行的时机和继承的接口有所不同。操作过滤器是在Action执行的前和后进行调用执行。而不是像授权过滤器一样,在刚开上来就执行授权过滤器。操作过滤器的实现了是 IAsyncAct...

2023-08-11 09:07:00 56

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除