Serilog 自定义 Enricher 来增加记录的信息

Serilog 自定义 Enricher 来增加记录的信息 Intro Serilog 是 .net 里面非常不错的记录日志的库,结构化日志记录,而且配置起来很方便,自定义扩展也很方便 Serilog is a diagnostic logging library for .NET applicat ...

WeihanLi @ 2019/08/12

.net core 实现基于 cron 表达式的任务调度

.net core 实现基于 cron 表达式的任务调度 Intro 上次我们实现了一个简单的基于 Timer 的定时任务,详细信息可以看 "这篇文章 " 。 但是使用过程中慢慢发现这种方式可能并不太合适,有些任务可能只希望在某个时间段内执行,只使用 timer 就显得不是那么灵活了,希望可以像 q ...

WeihanLi @ 2019/08/04

在 alpine 中使用 NPOI

在 alpine 中使用 NPOI Intro 在 .net 中常使用 NPOI 来做 Excel 的导入导出,NPOI 从 2.4.0 版本开始支持 .netstandard2.0,对于.net core 应用也可以使用 DotNetCore.NPOI。 对于 .NET Core 应用来说,如果没 ...

WeihanLi @ 2019/08/02

WeihanLi.Npoi 导出支持自定义列内容啦

WeihanLi.Npoi 导出支持自定义列内容啦 Intro 之前也有网友给提出过希望列合并或者自定义列内容的 issue 或请求,起初因为自己做 这个扩展的最初目的是导入导出的简单化,使用这个扩展导出的 Excel/csv 可以直接导入成 ,所以如果涉及的列合并的话或者自定义列的话,可能就不能直 ...

WeihanLi @ 2019/08/02

C# 通过反射调用 Func 委托

C 通过反射调用 Func 委托 Intro 最近我的 NPOI 扩展库增加了,自定义输出的功能,可以自定义一个 Func 委托来设置要导出的内容,详细介绍请查看 ,通过 Func 可以很方便设置,但是要调用的时候就有点麻烦了 反射调用 获取委托的方法: 获取要执行方法时的target: 委托的方法 ...

WeihanLi @ 2019/08/02

WeihanLi.Npoi 导出支持自定义列内容啦

WeihanLi.Npoi 导出支持自定义列内容啦 Intro 之前也有网友给提出过希望列合并或者自定义列内容的 issue 或请求,起初因为自己做 这个扩展的最初目的是导入导出的简单化,使用这个扩展导出的 Excel/csv 可以直接导入成 ,所以如果涉及的列合并的话或者自定义列的话,可能就不能直 ...

WeihanLi @ 2019/08/02

windows container 踩坑记

我们有一些服务是 dotnet framework 的,不能直接跑在 docker linux container 下面,最近一直在折腾把它部署在 windows container 下,折腾的有点恶心,记录一下。 ...

WeihanLi @ 2019/07/29

.net core 基于 IHostedService 实现定时任务

.net core 基于 IHostedService 实现定时任务 ...

WeihanLi @ 2019/07/29

动手造轮子:基于 Redis 实现 EventBus

动手造轮子:基于 Redis 实现 EventBus Intro 上次我们造了一个 "简单的基于内存的 " ,但是如果要跨系统的话就不合适了,所以有了这篇基于 的 探索。 本文的实现是基于 来实现的。 实现 既然要实现跨系统的 再使用基于内存的 EventStore 自然不行,因此这里基于 Redi ...

WeihanLi @ 2019/07/29

动手造轮子:实现一个简单的 EventBus

动手造轮子:实现一个简单的 EventBus Intro EventBus 是一种事件发布订阅模式,通过 EventBus 我们可以很方便的实现解耦,将事件的发起和事件的处理的很好的分隔开来,很好的实现解耦。 微软官方的示例项目 "EShopOnContainers" 也有在使用 EventBus ...

WeihanLi @ 2019/07/24

aspnetcore 实现简单的伪静态化

aspnetcore 实现简单的伪静态化 Intro 在我的活动室预约项目中,有一个公告模块,类似于新闻发布,个人感觉像新闻这种网页基本就是发布的时候编辑一次之后就再也不会改了,最适合静态化了, 静态化之后用户请求的就是静态文件基本不再需要服务器端查询数据库甚至服务器端渲染,可以一定程度上提升服务器 ...

WeihanLi @ 2019/07/12

asp.net core 自定义异常处理中间件

在 asp.net core 中全局异常处理,有时候可能不能满足我们的需要,可能就需要自己自定义一个中间件处理了,最近遇到一个问题,有一些异常,不希望记录错误日志,目前主要是用户请求取消导致的 `TaskCanceledException` 和 `OperationCanceledException... ...

WeihanLi @ 2019/07/04

asp.net core web api 生成 swagger 文档

在前后端分离的开发模式下,文档就显得比较重要,哪个接口要传哪些参数,如果一两个接口还好,口头上直接沟通好就可以了,如果接口多了就有点不适用了,没有接口文档会大大提高前后端的沟通成本。而 asp.net core 可以通过 [Swashbuckle.AspNetCore](https://github... ...

WeihanLi @ 2019/07/04

基于 Roslyn 实现动态编译

之前做的一个数据库小工具可以支持根据 Model 代码文件生成创建表的 sql 语句,原来是基于 CodeDom 实现的,最近改成使用基于 Roslyn 去做了。实现的原理在于编译选择的Model 文件生成一个程序集,再从这个程序集中拿到 Model (数据库表)信息以及属性信息(数据库表字段信息)... ...

WeihanLi @ 2019/07/01

angular 前端路由不生效解决方案

最近使用 Angular 为我的活动室预约项目开发一个前后端分离的客户端,在部署上遇到了一个问题,前端路由不生效,这里记录一下。本地开发正常,但是部署到服务器上就有问题,之前部署到IIS上时需要配置一个 url rewrite ,可能遇到了类似的问题,查阅一番之后确实是这样。 ...

WeihanLi @ 2019/06/28

LinqMethod 实现 LeftJoin

有时候我们想实现 leftJoin 但是 Linq 提供的 Join 相当于是 `INNER JOIN`,于是就打算实现一个 `LeftJoin` 的扩展。 ...

WeihanLi @ 2019/06/26

使用 docker 部署常用的开发环境

使用 docker 部署常用的开发环境 Intro 使用 docker,很多环境可以借助 docker 去部署,没必要所有的环境都在本地安装,十分方便。 前段时间电脑之前返厂修了,回来之后所有的软件都要重新装一遍,很麻烦,有些环境就直接用 docker 部署了,免去了还要再下载软件重新安装的麻烦。 ...

WeihanLi @ 2019/06/25

Newtonsoft.Json 指定某个属性使用特定的时间格式

`newtonsoft.json` 是 .NET 下最受欢迎 JSON 操作库,原为 `JSON.Net` 后改名为 `Newtonsoft.Json`,之前一直推荐大家使用,除了性能好之外,主要是功能丰富,基本满足所有的可能用到的场景(不区分小写,现在还不行,,)。 遇到这样一个需求,全局使用一... ...

WeihanLi @ 2019/06/25

Newtonsoft.Json 序列化踩坑之 IEnumerable

`Newtonsoft.Json` 是 .NET 下最受欢迎 JSON 操作库,使用起来也是非常方便,有时候也可能会不小心就踩坑了,这次就踩了一个,坑是这样的,如果要序列化的对象实现了 `IEnumerable` 接口,`Newtonsoft.Json` 就会认为这个对象是一个数组。。然后遍历这个对... ...

WeihanLi @ 2019/06/25

Windows 10 powershell 中文乱码解决方案

我装的系统是英文版的 win 10 操作系统,最近使用命令行测试接口,发现中文显示一直异常, 使用网上的各种解决方案都没有效果,update 注册表,设置 codepage 为 utf8(65001) 都没什么卵用。 ...

WeihanLi @ 2019/06/19