![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 71
胡老汉
专注于.net core下微服务开发
展开
-
.Net Nullable reference types(可为空引用类型)
Nullable reference types(可为空引用类型)"title": "One or more validation errors occurred.",The xxx field is required.原创 2022-09-06 11:30:07 · 1397 阅读 · 3 评论 -
Dapper数据库字段(列)与实体属性名不一致,通过Column特性自动注入映射
Dapper数据库字段(列)与实体属性名不一致,通过Column特性自动注入映射原创 2022-08-19 16:54:50 · 2762 阅读 · 2 评论 -
.NET 使用 Google 验证码(Google reCAPTCHA)
.NET 使用 Google 验证码原创 2022-07-21 13:44:46 · 2481 阅读 · 1 评论 -
System.InvalidOperationException:Each parameter in the deserialization constructor on type ‘‘ must
System.InvalidOperationException:“Each parameter in the deserialization constructor on type 'class Name ***' must bind to an object property or field on deserialization. Each parameter name must match with a property or field on the object. The match can b原创 2022-07-20 14:37:33 · 1845 阅读 · 0 评论 -
System.Drawing.Common workaround in .NET6
System.Drawing.Common workaround in .NET6原创 2022-03-09 17:56:13 · 1597 阅读 · 4 评论 -
Could not load file or assembly ‘System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, Public
Could not load file or assembly 'System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)在使用System.Text.Encodings.Web运.原创 2022-02-22 15:24:36 · 1351 阅读 · 0 评论 -
System.Text.Json输出的 json 中文、符号被编码(乱码)
System.Text.Json输出的 json 中文、符号被编码(乱码)的问题原创 2022-02-22 15:12:58 · 6913 阅读 · 3 评论 -
.Net Core连接MySql 异常 Sequence contains more than one matching element
.Net 连接MySql的常用的组件肯定都是用的MySql.Data。最近开发的项目,在开发环境,测试环境跑的好好的,一上线,开始抛异常,打开日志发现了一下异常:晚上在那里调程序,把mysql.data组件的nuget包进行了更新,前几天好好的程序,开始抛错,跟踪断点发现以下的异常:MySql.Data.MySqlClient.MySqlException: Unable to connect to any of the specified MySQL hosts.---> Syst..转载 2021-11-24 16:14:15 · 3867 阅读 · 0 评论 -
C# SharpZipLib 解压 文件名中文乱码
在使用 SharpZipLib 解压时,对于中文文件名,发现解压里对应的文件名是乱码。查看源码和帮助得知,SharpZipLib 默认使用的是UTF-8编码解压的但是我的压缩文件是GBK的解决方法:我们在进行文件压缩操作前,先做下面的修改:旧版SharpZipLib 使用ZipConstants.DefaultCodePage 修改默认编码// 出现乱码就是因为CodePage不对 var gbk = Encoding.GetEncoding("GBK"); ...原创 2021-11-19 18:16:46 · 2570 阅读 · 3 评论 -
.NET Core结合Nacos来配置管理
前言 去年项目组进行.Net Core3.1的项目重构之后,项目被拆分成了很多个微服务,每一个项目都是独立运行的,于是每一个项目都有很多的配置文件,这其中就不乏有些配置其实是相同的;但是在不同项目里面,配置要改,就得每一个项目去修改,非常的繁琐,于是乎就调研了一下Nacos。Nacos的简介 Nacos是阿里巴巴开源的一款支持服务注册与发现,配置管理以及微服务管理的组件。用来取代以前常用的注册中心(zookeeper , eureka等等),以及配置中心(spr...原创 2021-05-06 17:10:46 · 4075 阅读 · 0 评论 -
StackExchange.Redis Timeout awaiting response
在使用的StackExchange.Redis的NuGet包连接Redis的时候发现时不时的发现Redis连接超时排查日志发现异常StackExchange.Redis.RedisTimeoutException: Timeout awaiting response (outbound=0KiB, inbound=0KiB, 5002ms elapsed, timeout is 5000ms),command=GET, next: GET RedisKey, inst: 0, qu: 0, qs原创 2021-03-23 10:44:10 · 3408 阅读 · 0 评论 -
.NET Core统一设置路由前缀
NetCore WebAPI 如何设置一个统一的路由前缀创建一个类,遍历所有的controller,添加一个路由前缀public class RouteConvention : IApplicationModelConvention { private readonly AttributeRouteModel _routePrefix; /// <summary> /// 构造方法 /// </summary原创 2021-02-25 15:22:11 · 2381 阅读 · 5 评论 -
.Net Core TimeSpan使用System.Text.Json 反/序列化
目前在.Net Core 3.X新出了个内置的 JSON 库, System.Text.Json性能更高占用内存更少,减少第三方依赖项, 还能规避多个依赖项的依赖 Newtonsoft.Json 版本不一致的问题但是,凡是都有个但是,System.Text.Json目前无法反/序列化转换TimeSpan但从 .NET 5 的Milestone可以知道,這功能将会包含在 .NET 5 之中,在此之前,如果要对TimeSpan做反/序列化转换,可以使用JsonConverter 来处理。...原创 2020-11-05 15:50:14 · 1334 阅读 · 0 评论 -
.NET Core中实现自动注入、批量注入
我们在使用AddScoped、AddTransient、AddSingleton这类方法的时候很是麻烦。我们每增加一个接口以及其实现的时候,是不是需要在这里硬编码注册一行代码呢?项目小还好,但当我们的项目变得庞大之后,这里的依赖注入怎么来维护呢?在网上翻了半天,看了很多方法,其实现代码感觉都很不优雅,想想还是自己写一个比较实用吧,我们只需按照一个规定来定义和实现接口。应用程序就能自动扫描并注册这些程序集中的接口和对应实现类,完成依赖注入的自动注册,具体的实现可以通过接口或特性来实现,具体实现如下:第.原创 2020-08-18 10:39:55 · 5816 阅读 · 15 评论 -
.net core 使用 DispatchProxy 实现AOP动态代理 ,.Net Framework 下Remoting核心类库RealProxy实现AOP实现动态代理
在学习.net core的过程中,我们已经明确被告知,Remoting将不会被支持。官方的解释是,.net framework 类型包含了太多的Runtime的内容,是一个非常重量级的服务实现,已被确定为一项有问题的体系结构。说白了就是迁移的难度很大,.net core中直接不提供了。 既然,.net core 已经不支持RealProxy,那么就只能另起炉灶了。通过翻阅.net core的代码,终于发现了一个程序集:System.Reflection.DispatchPr...原创 2020-08-14 01:22:48 · 1427 阅读 · 0 评论 -
Asp.Net Core 3.1 Web Api 返回数据字段被转换为小驼峰格式的解决办法
使用Asp.Net Core 3.1 的Web Api 返回数据发现字段名称被转换为小驼峰格式,比如下面的类:public class Person{ public int UserId { get; set; } public string UserName { get; set; } public string UserAccount { get; set; } public int Sex { get; set; } public int Age { g原创 2020-07-23 18:34:09 · 2424 阅读 · 1 评论 -
Asp.Net Core下HttpResponseMessage输出文件前端始终输出Json
今天有个场景需要webapi返回给客户端回应一个图片,以前的老套路不能用了。刚开始以为是需要使用“HttpResponseMessage“,直接使用HttpResponseMessage输出文件流[HttpGet][Route("get")]public HttpResponseMessage Get(){ string path = @"C:\Users\***\Desktop\img0a28a1cbc674acd370585883abba3172.jpg"; HttpResp原创 2020-07-03 00:47:54 · 3472 阅读 · 0 评论 -
C#MySql.Data报错Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
记录一次深坑bug,调试修改三个小时。程序增删查改一套写好了,开始运行测试。额,查看日志吧!连接数据库报错:Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)翻译:Guid应该包含32位数字和4个破折号(xxxxxxxx-xxxx-xxxx- xxxxxxxxxxxxxx)我搜索了一下我项目中并没有使用GUID呀。于是乎,各种Google,百度,改代码,测试代码。原创 2020-06-30 21:30:10 · 3261 阅读 · 0 评论 -
.Net Core3.1 集成Log4net
准备第一步:nuget 引用 Microsoft.Extensions.Logging.Log4Net.AspNetCore第二步:在项目中添加log4net.config的配置文件(配置文件在文末)第三步:在项目中注册使用log4net方法一:在Program.cs中注册,找到Program.cs里的CreateHostBuilderpublic static IHostBuilder CreateHostBuilder(string[] args) => Ho..原创 2020-06-23 09:12:47 · 2893 阅读 · 0 评论 -
HttpContext.Current.Server.MapPath(path) 未将对象设置到对象的实例异常。
多线程中的System.Web.HttpContext.Current.Server.MapPath("/")多线程中(包括在async 中),Server.MapPath会失效。。。 获取为Null网上找到几种解决方法,现在整理如下:第一种:System.Web.HttpContext.Current.Server.MapPath("/") 这个常用来表示网站的根目录,但是在多线程中,会发生未将对象引用设置到对象的实例。 所以不要分布在不同的类中,尽量在一个全局位置,然后其它类共用这..原创 2020-05-22 13:44:52 · 2323 阅读 · 0 评论 -
Quartz.NET+TopSelf (Asp.Net Core版)实现定时服务,支持Job持久化和集群,异常重启
概述基于Quartz.NET+TopSelf 实现定时服务,支持Job持久化和集群,异常重启同时多太服务器安装服务,单位时间内,只会有一台正在执行的服务,如果把正在执行的那台服务关掉,另外一台将会开始执行任务(同一台机器启动两个实例,也会有这样的效果,但是必须保证数据库Mysql是同一个地方的服务器)详细介绍请看博主的另外一篇文章Quartz.NET+TopSelf 实现定时服务,支...原创 2020-04-24 13:52:26 · 912 阅读 · 0 评论 -
开发部门,代码 Code Review 实践方案
Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,Code Review都是基本要求,代码合并之前必须要有人审查通过才行。Code Review 好处团队知识共享的角度一个开发团队中,水平有高有低,每个人侧重的领域也有不同。怎么让高水平的帮助新人成长?怎么让大家都对自己侧重领域之外的知...原创 2020-04-15 19:08:22 · 701 阅读 · 0 评论 -
通过BAT脚本检测并安装WINDOWS服务程序
概述笔者近日需要为公司开发的一个服务程序写一个安装和卸载的脚本,安装服务和卸载服务都很简单, 但想要自动以管理员权限运行,并且能判断服务是否已经安装.现在将正确的代码附上,仅供参考.安装服务@echo offtitle 正在获取管理员授权mode con cols=100 lines=20color 3f:: 开始获取管理员权限setlocalset uac=~ua...原创 2020-03-26 15:18:23 · 1860 阅读 · 0 评论 -
Quartz.NET+TopSelf 实现定时服务,支持Job持久化和集群,异常重启
概述基于Quartz.NET+TopSelf 实现定时服务,支持Job持久化和集群,异常重启同时多太服务器安装服务,单位时间内,只会有一台正在执行的服务,如果把正在执行的那台服务关掉,另外一台将会开始执行任务(同一台机器启动两个实例,也会有这样的效果,但是必须保证数据库Mysql是同一个地方的服务器)参考官方学习文档:http://www.quartz-scheduler.net/...原创 2020-03-24 13:56:01 · 1432 阅读 · 0 评论 -
Elasticsearch Collapsing 字段折叠使用详解_字段折叠后数量结果Total不准确解决方法
在 Elasticsearch 5.x 有一个字段折叠(Field Collapsing)的功能非常有用,在这里分享一下前言在电商商品中有分SKU和SPUsku是和商品的库存相关的一个概念。比如air max90、蓝色、40码的nike跑鞋,就是一个sku。你可以设置这个sku的价格、库存。spu是标类商品的一个概念。所谓标类简单理解就是有型号的商品,比如air max90、蓝...原创 2019-12-30 17:28:34 · 3223 阅读 · 0 评论 -
Asp.net MVC 返回Json数据忽略序列化属性
在属性上添加 [ScriptIgnore] 特性,命名空间是System.Web.Script.Serialization需要引用ystem.Web.Extensions.dll原创 2019-11-08 17:53:53 · 617 阅读 · 0 评论 -
没有为SQL缓存通知启用数据库“某某某“ ,使用Sql缓存依赖前,先调用EnableTableForNotifications通知数据库SqlCacheDependencyAdmin.Enabl
没有为SQL缓存通知启用数据库"某某某" ,使用Sql缓存依赖前,先调用EnableTableForNotifications通知数据库SqlCacheDependencyAdmin.Enabl 的解决方法具体的报错误信息如下:解决方案: 关闭所有的在连接sql数据库的程序,重启数据库的管理工具,数据库右键→属性→选项 找到 Broker启动 把F...原创 2016-10-20 01:12:37 · 717 阅读 · 0 评论 -
C#图片截取块并画在画板上带白边框带添加文字,截取支付宝的付款码
在项目中需要使用到截取支付宝的付款码,话不多说直接看图片这里需要提取中间的付款码,听在下面加文字,当然这里的图片上的付款码换成了其他的二维码,换我自己二维码也没有人转账给我,还是不要暴露自己为好就是这么个需求, 下面开始撸码html部分 <form action="Handler.ashx" method="post" enctype="multipart/...原创 2017-04-26 09:37:56 · 1613 阅读 · 0 评论 -
C# string分割转int[] string分割转List<int>
int[] selects= Array.ConvertAll<string, int>(IDList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.StringToInt32()); //string分割转int[] List<int> selects = Ar...原创 2018-06-07 17:54:34 · 6326 阅读 · 2 评论 -
C#枚举操作
C#中的枚举基本操作 /// <summary>/// 订单审核状态/// </summary>public enum GetState{[Description("审核中")]inReview = 1, [Description("审核通过")]approve = 2,[Descript...原创 2018-07-05 11:21:43 · 887 阅读 · 0 评论 -
跨域问题Access to XMLHttpRequest‘*‘from origin ‘*‘ has been blocked by CORS..Access-Control-Allow-Origin
跨域问题解决方案:CORSAccess to XMLHttpRequest at '*' from origin '*' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header...原创 2019-03-02 16:34:48 · 333512 阅读 · 44 评论 -
[翻译] 微软正式宣布 .NET 5版本
介绍.NET 5Richard2019.05.06今天,我们宣布 .NET Core 3.0 之后的下一个版本将是 .NET 5 。这将是 .NET 系列的下一个重要版本。将来只会有一个 .NET ,您将能够使用它来开发 Windows,Linux,macOS,iOS,Android,tvOS,watchOS 和 WebAssembly 等等。我们将在 .NET 5 中引入新的...原创 2019-05-07 10:43:31 · 7998 阅读 · 0 评论 -
C#经纬度坐标算距离
C#经纬度坐标算距离,根据百度地图js方法改成C#版本,计算精确,误差较小部分内容没有进行优化 见谅namespace Distance{ class Program { static void Main(string[] args) { Console.WriteLine(Distance(22.6115559...原创 2019-07-04 20:04:31 · 3871 阅读 · 0 评论 -
C# 位运算
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。6 and 11 转成二进制01...原创 2019-08-15 11:07:06 · 1093 阅读 · 0 评论 -
JS与C#编码解码
escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如"春节"的返回结果是%u6625%u8282,escape()不对"+"编码 主要用于汉字编码。escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-ZJS: escape :js使用数据时可以使用escape 例如:搜藏中history纪...原创 2019-08-24 11:11:26 · 412 阅读 · 0 评论 -
Socket通讯基本流程
Socket编程模型 服务器端: 1)创建Socket对象。设置协议、传输方式等(连接Socket) 2)绑定IP与端口(设置要监听的IP与端口) 。Bind() 3)开启监听。Listen() 4)开始接受客户端连接。Accept)://阻塞线程,同时也需要循环不断接受用户连接。 5)接受了客户端的连接...原创 2019-11-18 18:59:26 · 1469 阅读 · 0 评论 -
foreach()中的yield的使用
通过foreach 语句降低了枚举的复杂度。>可枚举类型(具有GetEnumerator()方法)、枚举器(具有IEnumerator接口中的成员的类)>IEnumerable实现该接口即为可枚举类型>IEnumerator实现该接口为枚举器>foreach遍历类型推断为object而不是实际类型,需要实现泛型版本的接口>快捷语法:yield(yield含义:生产, ...原创 2016-10-20 01:53:31 · 2389 阅读 · 1 评论