c#
IT杂人
有其功必有其效
展开
-
nuget发布非正式版本/预览版本
1.我们的类库,可能随着分支的不同,有不同的版本,有些版本处于测试,有些处于正式使用时,如果还只是使用之前的高版本是不合适的,容易误升级所以可使用预览版本2.在定义版本时,除了数字和点号以外,后面有其他字符,会默认选择为非正式版本3.nuget 推送到服务端nuget push %1 -src http://xxx.xxx.cn 123456 XXX.DTO.1.0.7-pre.nupkghttp://xxx.xxx.cn:为指定的nuget服务端123456 :密码4原创 2021-04-12 18:35:20 · 680 阅读 · 0 评论 -
记一次webapi使用Cache特性被缓存击穿的问题
记一次webapi使用Cache特性被缓存击穿的问题原创 2022-10-28 21:14:10 · 805 阅读 · 0 评论 -
dotnet开发使用runtimeconfig.json设置程序默认的最小线程数
dotnet开发使用runtimeconfig.json设置程序默认的最小线程数原创 2022-08-16 10:11:54 · 1211 阅读 · 0 评论 -
.net老项目,指定旧开发语言版本来规范开发
有老项目是5年之前写的,开发人员都用vs2019,但现场客户机器还是vs2013,所以写得新代码,放到现场编译后,发现编译不通过;原创 2022-06-17 11:33:05 · 151 阅读 · 0 评论 -
c#信号量控制线程消费
等价于Lock var semaphore=new Semaphore(1, 1, "QSemaphoreTest");本地数据队列转换为线程队列,控制处理速度###会有线程积压private static Semaphore semaphore = new Semaphore(5, 5, "QSemaphoreTest");while(true) //只产生异步线程,在线程里控制处理流量{ Thread thread = new Thread(new ParameterizedThrea原创 2022-05-14 22:29:56 · 184 阅读 · 0 评论 -
.net调试:使用visual studio调试dump文件
visual studio调试dump文件最近发现线程有问题:可能有死锁或者饿死状态右键选择创建转储文件转到对应的目录下,找到dmp文件使用vs打开,选择其中一个调试,我一般用混合调试=》窗口=》线程、进程、模块、并行堆栈查看堆栈:查看线程关系及依赖关系查看线程:查看线程发生的位置和使用状态...原创 2022-04-20 23:59:11 · 1459 阅读 · 0 评论 -
文件“bin\Debug\net6.0\TestConsumer.exe”正由另一进程使用,因此该进程无法访问此文件。
因为生成的TestConsumer.exe,在关闭vs也有没关闭;在任务管理器上也不方便找到;无法将文件“E:\Repos.My\NewLife.RocketMQ-master\TestConsumer\obj\Debug\net6.0\apphost.exe”复制到“bin\Debug\net6.0\TestConsumer.exe”。文件“bin\Debug\net6.0\TestConsumer.exe”正由另一进程使用,因此该进程无法访问此文件。 TestConsumer C:\Pro原创 2022-04-12 17:44:08 · 149 阅读 · 0 评论 -
代码里下毒之夏令时
代码下毒之夏令时原创 2022-03-30 06:00:27 · 220 阅读 · 0 评论 -
log4net配置造成无错误日志输出
问题出现:在docker容器启动后,能正常提供一段时间的服务,过一段时间发现容器异常重启;查看映射出来的日志文件后,未发现任何Error级别的日志;问题分析:1.日志文件映射问题2.docker 错误输出3.docker 自身问题4.log4net 配置问题验证分析1.日志正常输出,有其他的Info,Debug级别日志输出2.docker logs 能查到错误输出【未验证】3.docker 刚刚重启过,其他同框架写的后端服务没问题4.查看log4net日志配置解决问题log4ne原创 2022-03-14 23:59:06 · 1020 阅读 · 0 评论 -
netcore使用ActionFilter过滤器,实现模型验证的国际化多语言提示信息
1.模型验证类库:DataAnnotations,我们使用常用基本的模型验证类库2.定义验证的时候如下://ErrorMessage 不再返回具体的提示信息,只返回具体的对应的codepublic class RequestDTO { /// <summary> /// 用户ID /// </summary> [Required(ErrorMessage = "MsgCode_UserIDisNull")]原创 2021-11-24 12:36:11 · 684 阅读 · 0 评论 -
使用委托实现递归查询
按数据库中保存的树状结构,获取相应树上的所有子节点 /// <summary> /// 获取父级下所有的组织列表 /// </summary> /// <param name="parentId"></param> /// <returns></returns> public IList<OrgDto> GetTreeListBy原创 2021-11-09 15:55:45 · 281 阅读 · 0 评论 -
可空类型Nullable<T>的坑
可空类型的坑1.代码中2.数据库中3.代码规范4.数据库规范原创 2021-05-11 14:39:53 · 162 阅读 · 0 评论 -
c#微软官方编码标准与java阿里官方编码标准
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/inside-a-program/coding-conventionshttps://developer.aliyun.com/topic/java2020原创 2021-04-14 11:32:42 · 216 阅读 · 0 评论 -
c#的方法体建议的注释格式
1.通过注释能减少很多不必要的沟通和失误,建议的方法体注释,如下【较多】: /// <summary> /// 获取xxx分页列表 /// author:zelun /// date:2021-04-14 /// log:实现xxx分页列表 /// <example> /// <code> /// var result=new xxxB.原创 2021-04-14 10:09:13 · 329 阅读 · 0 评论 -
netcore使用过滤器特性,限定方法在指定环境(Development,Staging,Production)是否运行
1.特性 /// <summary> /// 运行环境:Development,Staging,Production /// </summary> public class EnableHostEnvionmentAttribute : ActionFilterAttribute { private string hostEnvNames; /// <summary> ///原创 2021-03-11 18:00:07 · 284 阅读 · 0 评论 -
netcore检测启动模式是否调试模式的两种实现模式
1.使用条件编译符#if Debug,当代码被此标签包含时,换到Release调试模式,代码不会被编译,且访问Controller/Action 会返回404#if DEBUG /// <summary> /// 测试 /// </summary> [AllowAnonymous] public class TestController : BaseController { /// <summary>原创 2021-03-11 17:53:24 · 1180 阅读 · 0 评论 -
c# 字符串转枚举,使用default关键字返回null值的泛型
字符串转枚举 /// <summary> /// 枚举字符串转换为对应的枚举对象(枚举value 转 枚举对象) /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value">枚举value</param> /// <returns>.原创 2021-03-11 15:28:39 · 285 阅读 · 0 评论 -
C#获取时间戳(Unix时间戳)
明确一点:unix时间戳是从1970年1月1日的午夜开始所经过的时间 /// <summary> /// 将c# 本地DateTime时间格式转换为Unix时间戳格式 (毫秒) /// </summary> /// <param name="time">时间</param> /// <returns>long</returns>原创 2021-02-26 16:02:47 · 3226 阅读 · 0 评论 -
测试IIS多进程下,c#版雪花算法的值大量重复
线上找的雪花算法及说明:https://www.cnblogs.com/yushuo/p/9406906.html较真的态度,验证如下:1.修正代码,示例代码有调用错误:nuget安装sqlsugar,framework4.6.1版本 //核心算法namespace webapi2 { //核心算法 public class SnowflakeNet { //基准时间 private static long StartStmp.原创 2021-01-19 10:33:26 · 778 阅读 · 0 评论 -
vs创建支持多框架的类库
自己写的类库支持多框架,在实现自己类库时引用多框架不同的其他类库,同时方便给别人多版不同框架调用1.创建类库.netstandard版本2.在创建好的类库项目上编辑项目文件3.修改项目文件的支持框架为多框架,相支持什么版本就写什么版本,用";"隔开 <PropertyGroup> <TargetFrameworks>net4.6.1;netstandard2.0;netcoreapp2.0</TargetFrameworks> &原创 2020-12-11 13:48:51 · 1070 阅读 · 0 评论