C#
执着的涛
保持饥饿,保持愚蠢,做最好的自己!
展开
-
C# Net 通用json转Object(对象)
Net 通用json转Object(对象)原创 2023-01-10 14:19:10 · 3266 阅读 · 1 评论 -
.Net Code Filter 筛选器(一)之 ActionFilter-- IAsyncActionFilter 和 ActionFilterAttribute
.Net Code Filter 筛选器(一)之 ActionFilter-- IAsyncActionFilter 和 ActionFilterAttribute原创 2022-12-30 11:54:55 · 925 阅读 · 0 评论 -
WpfGauge:开源仪表盘(Gauge)的使用
WpfGauge:开源仪表盘(Gauge)的使用原创 2022-12-21 14:17:36 · 679 阅读 · 0 评论 -
WPF 重新启动应用程序
WPF中通过System.Windows.Forms.Application.Restart方法可以实现软件重启。原创 2022-11-28 12:17:21 · 1622 阅读 · 0 评论 -
.Net Core使用Coravel实现任务调度
Coravel是一个专为.NET Core设计的.NET Standard库,除了任务调度,还提供了像队列、缓存、邮件等其它高级功能。特点就是对开发者十分友好,接入十分简单、优雅、流畅,接近于零配置原创 2022-10-18 19:07:15 · 530 阅读 · 3 评论 -
对象映射器 Mapster
Mapster是.Net对象映射类库,可能听过的人不多,但相信你一定听过AutoMapper,个人感觉Mapster比其跟好用,更方便,学习成本更低原创 2022-10-18 16:56:21 · 598 阅读 · 0 评论 -
Visual Studio 插件之CodeMaid自动整理代码
Visual Studio神级插件之CodeMaid转载 2022-07-02 09:28:44 · 726 阅读 · 0 评论 -
C# 业务流水号规则生成组件
业务流水号规则生成组件原创 2022-06-10 13:40:42 · 617 阅读 · 0 评论 -
分布式SOA架构
什么是SOASOA 全称为 Service-Oriented Architecture,即面向服务的架构。它可以根据需求通过网络对松散耦合的粗粒度应用组件(服务)进行分布式部署、组合和使用。一个服务通常以独立的形式存在于操作系统进程中。站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,通过服务的编排实现业务的快速再生,目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用。通过上面的描述可以发现 SOA 有如下几个特点:分布式、可重用、扩展灵活、松耦合SOA架构当垂直应用原创 2022-05-17 11:58:04 · 4081 阅读 · 0 评论 -
PaddleOCRSharp使用
PaddleOCRSharp本项目是一个基于百度飞桨的PaddleOCR的C++代码修改并封装的.NET的类库。包含文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能,同时针对小图识别不准的情况下,做了优化,提高识别准确率。项目封装极其简化,实际调用仅一行代码,极大的方便了中下游开发者的使用和降低了PaddleOCR的使用入门级别,同时提供不同的.NET框架使用,方便各个行业应用开发与部署。其中PaddleOCR.dll文件是基于开源项目PaddleOCR的C++代码修改而...原创 2022-05-12 23:10:03 · 1674 阅读 · 0 评论 -
不要迷失在技术的海洋中
技术就好像一片汪洋大海,越深入越望不到边际。在这些语言、技术、工具、理念中,每一项都能扩展出很多还要细化的技术,每一项要达到熟悉的程度可能都会花去一年的时间,如果这些都要达到熟悉的话,大概也就快退休了。不但如此,每一个技术都在飞速发展,今年语言到了明年就有更简单的语法,今年的技术到了明年就有更好的技术来替代,今年的工具到明年已经面目全非,今年的理念到了明年已不再流行。或许你现在:l在为面试而去搜索接口和抽象类的区别;l在为新技术来不及学习而烦恼;l...转载 2022-05-10 16:38:47 · 91 阅读 · 0 评论 -
.NET Core 使用 Filter 记录请求的参数和返回值
获取返回值并对返回值做统一处理public void OnResultExecuting(ResultExecutingContext context) { Console.WriteLine(context.Result); if (context.Result is ObjectResult result) { string resObj = JsonConvert.Serial原创 2022-04-02 09:08:59 · 1198 阅读 · 1 评论 -
vs2019 使用Visual-Studio-Translator扩展工具
在我们平时的开发过程中,英语差的经常面临怎么给方法命名,怎么命名合适等问题,那我今天就给大家安利一款Visual Studio扩展工具Translator。一.扩展工具安装原创 2022-04-01 11:04:07 · 2057 阅读 · 0 评论 -
C#读取注释的方法
一、在C#中,注释不是可执行代码的一部分,因此注释不会被编译到程序集中去,但是我们可以提取注释【右键项目】-【属性】-【生成】-【输出】-【Xml文档文件】二、创建一个辅助类:/// <summary> /// 注释辅助类 /// </summary> public class XmlCommentHelper { private static Regex RefTagPattern = new Regex(@"<(原创 2022-03-29 09:22:22 · 3363 阅读 · 0 评论 -
Asp.Net SignalR 集群会遇到的问题
SignalR集群当客户端数量上来,一台server自然是吃不消的。多个server集群部署是必然的解决方案。再通过负载均衡,嗯 简直是完美。但是问题也接踵而来。每个server只能管理到当前server下的client,比如 server1要给连接在server2的client发一条消息是实现不了的。这时我们需要“底板”中间件,什么叫底板 ,也就是在server的集群上再加一层,由底板来维护这些server,像上面server1给连接在server2的client发消息,底板会告诉server2给原创 2022-03-20 22:55:45 · 448 阅读 · 0 评论 -
VS2019 打包WPF安装程序最新教程(图文详解)
使用VS2019打包WPF安装程序有很多种方法,本篇教程基于VS扩展插件Microsoft Visual Studio Installer Projects工具来打包,实际上此工具,在VS2010时自带有,只是后面版本的Visual Studio取消了此插件,现在需要单独安装。安装打包Installer插件安装Microsoft Visual Studio Installer Projects插件有两种方式。一是下载插件单独安装,二是在VS里面在线安装。Microsoft Visual Stud原创 2022-03-14 11:54:24 · 8938 阅读 · 10 评论 -
WPF将窗口置于桌面下方(可用于动态桌面)
WPF将窗口置于桌面下方(可用于动态桌面)先来看一下效果:界面元素很简单,就一个Button按钮,然后写个定时器,定时更新Button按钮中的内容为当前时间,下面来介绍下原理,和界面组成。窗口介绍Windows操作系统所有的地方都是窗口,可能这也是系统名字的由来吧,包括你看到的文件夹,桌面,右键菜单,这些都是由界面组成的, 这么多窗口需要有一个合理的显示,就需要用到我们的层级关系,比如两个窗体谁显示在前,谁显示在后。VS给我们提供了一个查找和查看窗口信息的工具,叫做Spy++,在工具转载 2022-01-24 10:11:46 · 794 阅读 · 2 评论 -
WPF开发必备--类库
1、XamlFlairXamlFlair 库的目标是简化常见动画的实现,并允许开发人员使用几行 Xaml 轻松添加单个或组合的动画集。Github:https://github.com/XamlFlair/XamlFlair2、瓦娜拉该项目包含各种 .NET 程序集,其中包含来自 Windows 库的 P/Invoke 函数、接口、枚举和结构。每个程序集都与一个或几个紧密相关的库相关联。例如,Shlwapi.dll 具有从 shlwapi.lib 导出的所有函数;Kernel32.dll 包原创 2022-01-20 11:19:27 · 1493 阅读 · 0 评论 -
C# .NET Core 使用HttpClient时忽略HTTPS证书
最近项目遇到HttpClient请求代理时报SSL认证失败,解决方案记录 var handler = new HttpClientHandler(); handler.ServerCertificateCustomValidationCallback = delegate { return true; }; var client = new HttpClient(handler);...原创 2021-12-24 14:40:06 · 2352 阅读 · 0 评论 -
C#通过反射获取对象字段和值
代码比较简单,只作为简单的例子参考;例子1static void Main(string[] args) { UserInfo userInfo = new UserInfo(); userInfo.ID = 1; userInfo.Name = "bailey"; userInfo.CreateDate = DateTime.Now; userInfo.Numb原创 2021-12-02 09:26:27 · 876 阅读 · 0 评论 -
WPF 使用FileSystemWatcher监控新生成的文件
main(){ string path1 = "D:\Program Files (x86)\Microsoft Office"; // 监控路径1 string path2 = "D:\Program Files (x86)\Microsoft Visual Studio 14.0\lib"; // 监控路径2 string[] pathArray = { path1, path2}; f...原创 2021-11-02 17:30:24 · 584 阅读 · 0 评论 -
WPF操作CSV文件类型
public class CsvStreamReaderHepler { #region CSV文件读取 public static DataTable OpenCSV(string filePath)//从csv读取数据返回table { System.Text.Encoding encoding = GetType(filePath); //Encoding.ASCII;// DataTable d.原创 2021-11-02 17:27:31 · 1244 阅读 · 0 评论 -
C# DataTable转换对象或对象列表
public static class DataTableToModel { /// <summary> /// DataTable通过反射获取单个像 /// </summary> public static T ToSingleModel<T>(this DataTable data) where T : new() { T t = data.Get...原创 2021-11-02 17:23:14 · 832 阅读 · 0 评论 -
C#计算两个时间差(年月日时分秒)
由于业务需求,在系统中计算任务需要花费多少时间,并按开始时间和结束时间来计算,可以得到多少年、多少个月、多少天,如果是同一天就需要得到多少小时、多少分钟、多少秒public string term(DateTime b, DateTime e) { if (b < e) { var t = new { bm = b.Month,原创 2021-09-22 14:17:35 · 2982 阅读 · 0 评论 -
WPF HttpClient 发送请求出错时解决办法
本人在改造旧项目时遇到一个http发送请求在本地怎么都好使,但是在测试服务器始终失败的问题,给的错误信息也只有一句话:“发送请求时出错”,使用的是HttpClient对象发出的请求。使用PostMan也是可以正常发送的,但是就是一到测试服务器就失败,我的测试服务器是配置了https证书的,目标服务器也是https,费了好久排查代码问题,甚至不惜更换底层代码还是不好使。 被逼无奈还是百度吧,没想到网上早就有类似问题了:我的上一篇采坑文章:APP项目http请求无法通信的错误:c# – 因为算法不.原创 2021-08-31 18:35:32 · 536 阅读 · 0 评论 -
.Net Core微服务架构
https://www.cnblogs.com/johnwang/articles/12664627.html转载 2021-06-18 13:53:36 · 182 阅读 · 0 评论 -
C# Unity的使用
Unity是微软推出的IOC框架,使用这个框架,可以实现AOP面向切面编程,便于代码的后期维护,此外,这套框架还自带单例模式,可以提高程序的运行效率。下面是我自己的案例,以供日后参考:使用VS2019的Nuget管理器下载Unity。程序员接口类:namespace UnityDemo{ public interface IProgrammer { void Working(); }}程序员类:using System;namespace U原创 2021-03-04 11:09:31 · 1497 阅读 · 1 评论 -
.Net FrameWork下如何实现在多个数据库操作下实现事务操作保证数据一致性
1.引用程序集:system.Transactions2.启动msdtc3.代码实现原创 2021-01-18 11:22:39 · 407 阅读 · 0 评论 -
Asp.Net缓存——客户端缓存
Asp.net缓存将常用的数据保存在内存中对asp的开发人员来说并不陌生,Session对象和Application对象提供键值对来缓存数据,Session对象保存和单个用户有关的数据,Application对象可保留和应用程序有关的数据,每个用户都可以访问。在Asp.net中,提供了专门用于缓存数据的Cache对象,它的应用范围是应用程序域。生存期是和应用程序紧密相关的,每当应用程序启动的时候就重新创建Cache对象。它域Application对象的主要区别就是提供了专门用于缓存管理的特性,比如依赖和原创 2021-01-15 14:38:14 · 284 阅读 · 0 评论 -
MQTT 入门介绍
一、简述MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQ原创 2020-12-23 10:20:46 · 275 阅读 · 0 评论 -
让 WPF 支持响应式布局
思路是在控件尺寸发生变更的时候更新控件的样式。而能容易实现这个的只有Trigger和Setter那一套。直接在控件上使用的Trigger只能使用EventTrigger,因此我们需要编写能写更多种类Trigger的Style。<Style x:Key="Style.Foo.WalterlvDemo"> <Setter Property="Grid.Row" Value="0" /> <Setter Property="Grid.Colu...原创 2020-12-17 09:02:03 · 336 阅读 · 0 评论 -
.netcore 3.1高性能微服务架构:加入swagger接口文档
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。wagger作用 (1)接口的文档在线自动生成。 (2)功能测试。接口开发的痛点相信无论是前端还是后端开发,都或多或少地被...转载 2020-04-16 11:03:51 · 896 阅读 · 0 评论 -
C#设计模式
使用设计模式来提高程序库的重复利用性是大型程序项目开发必须的。但是在“四人帮”的设计模式概述中提到了23种标准设计模式,不但难以记住,而且有些设计模式更多的适用于应用程序开发,对游戏开发并不是很适配。根据经验,精挑细选后,在这里记录一些自认为有利用价值的设计模式,以便之后自己设计时使用。一、观察者模式 Observer观察者的设计意图和作用是: 它将对象与对象之间创建一种依赖关系,...转载 2020-03-20 15:49:25 · 233 阅读 · 0 评论 -
MVC WebApi 文档生成注释说明的方法
https://blog.csdn.net/phker/article/details/78110685转载 2020-03-17 16:14:47 · 331 阅读 · 0 评论 -
正则匹配任意字符(常用正则表达式的书写)
匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行匹配HTML标记的正则表达式:<(\S*?)[^>]*>....转载 2020-03-13 10:05:09 · 10596 阅读 · 0 评论 -
推荐10个堪称神器的学习网站
01、大学资源网大学资源网是一个完全免费并且功能非常强大的学习网站,它免费提供了丰富并且全面的学习视频教程,并且视频课程一直在更新,非常良心。我比较看重的是它里面的考研视频教程,有数学、英语、政治、专业课等等;还有英语视频课程,对于一名程序员来说,如果想要变得更优秀,英语是不可或缺的。另外,我看到它还贴心的支持:小学课程、初中课程、高中课程。挑了几个看了一下,竟然找到了年轻时上课的感觉。...转载 2020-03-08 10:19:17 · 364 阅读 · 0 评论 -
Asp.net Core调用webService服务返回DataTable时框架默认转化成XML(解析)
刚刚接触.net Core不久,最近项目当中需要调用webService服务获取数据,负责接口的同事定义的返回类型是一个DataTable,但是我这边请求成功之后接收到的竟然是一个XML格式的数据,这把我搞得有点摸不着头脑,后面经过一番询问和查找资料后才明白,这是.net Core默认把DataTable转化成了XML!如何想拿到想要的数据还得解析一下!在这里记录一下,希望对日后有需要的小伙伴能提...原创 2020-03-04 14:17:29 · 1452 阅读 · 0 评论 -
ASP.NET Core系列:JWT身份认证
1. JWT概述 JSON Web Token(JWT)是目前流行的跨域身份验证解决方案。 JWT的官网地址:https://jwt.io JWT的实现方式是将用户信息存储在客户端,服务端不进行保存。每次请求都把令牌带上以校验用户登录状态,这样服务就变成无状态的,利于服务器集群扩展。1.1 JWT令牌结构 在紧凑的形式中,JSON Web Tokens由dot(.)分隔...原创 2020-03-03 21:06:53 · 514 阅读 · 0 评论 -
C# 中的委托和事件
委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Obse...转载 2020-02-27 15:59:20 · 149 阅读 · 0 评论 -
C#中Mutex的用法
C#中Mutex是互斥锁,位于System.Threading 命名空间中。顾名思义,它是一个互斥的对象,同一时间只有一个线程可以拥有它,该类还可用于进程间同步的同步基元。如果当前有一个线程拥有它,在没有释放之前,其它线程是没有权利拥有它的。我们可以把Mutex看作洗手间,上厕所的人看作线程;上厕所的人先进洗手间,拥有使用权,上完厕所之后出来,把洗手间释放,其他人才可以使用。线程使用M...原创 2020-02-27 10:33:40 · 5889 阅读 · 0 评论