随笔分类 - .NET
摘要:文章名称: 如何在ASP.NET Core自定义中间件读取Request.Body和Response.Body的内容? 作者: Lamond Lu 地址: https://www.cnblogs.com/lwqlun/p/10954936.html 源代码: 背景 最近在徒手造轮子,编写一个ASP.
阅读全文
摘要:原文地址: "Create Interactive .NET Documentation with Try .NET" 原文作者:Maria 译文地址: 译者:Lamond Lu 背景 当我们编写开发人员使用的文档时,我们需要捕捉他们的兴趣,并引导他们尽快走上成功的道路。开发人员生态系统一直在为社区
阅读全文
摘要:本文大部分内容是针对Refit官网的翻译。 官网地址: Refit是一个类似于Retrofit的Restful Api库,使用它,你可以将你的Restful Api定义在接口中。 例如: 这里 类生成了一个 接口的实现,它使用 来进行api调用。 Refit可以在哪些地方使用? 当前Refit支持一
阅读全文
摘要:原文: "CREATING SAMPLE DATA FOR C " 作者:Bruno Sonnino 译文:C 中使用Bogus创建模拟数据 译者: Lamond Lu 背景 在我每次写技术类博文的时候,经常做的一件事就是创建模拟数据。在每篇博文中,为了解释某些概念,我需要创建许多模拟数据。这是一个
阅读全文
摘要:原文地址:https://andrewlock.net/using strongly typed entity ids to avoid primitive obsession part 1/ 作者:Andrew Lock 译者:Lamond Lu 译文地址: 回想一下,在你以往编程的过程中,是否经
阅读全文
摘要:标题:.NET中的状态机库Stateless 作者:Lamond Lu 地址: 介绍 什么是状态机和状态模式 状态机是一种用来进行对象建模的工具,它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的
阅读全文
摘要:Fluent Migrator是一个基于.NET的迁移框架,你可以像使用Ruby on Rails Migrations一样使用它。Fluent Migrator的最新版本是3.13版,官网地址
阅读全文
摘要:标题:使用MediatR重构单体应用中的事件发布/订阅 作者:Lamond Lu 地址: 源代码:https://github.com/lamondlu/EventHandlerInSingleApplication 背景 在之前的一篇文章中,我分享了一个 "在ASP.NET Core单体程序中,使
阅读全文
摘要:背景 在我们的日常开发中,我们会经常使用枚举类型。有时我们只需要显示枚举的值或者枚举值对应名称, 但是在某些场景下,我们可能需要将枚举值显示为不同的字符串。 例: 当前我们有如下枚举Level 这个枚举有4个可选值B, N, G, VG。 现在我们希望用Bad, Normal, Good, Very
阅读全文
摘要:原文: "Nullable Reference Types In C 8" 作者:.NET Core Tutorials 译者:Lamond Lu 现状 可空引用类型 ? 自从我开始学习.NET, 引用类型一直就是可空的。然而初级程序员通常会告诉你值类型不可空,引用类型可空。 事实上,在.NET中有
阅读全文
摘要:本篇博客描述了如何使用MiniProfiler来监控分析你的Api, 以及如何将MiniProfiler和Swagger集成起来
阅读全文
摘要:原文地址: "How to unit test a class that consumes an HttpClient with IHttpClientFactory in ASP.NET Core?" 作者: "Anthony Giretti" 译者: Lamond Lu 介绍 几年前,微软引入了
阅读全文
摘要:背景 最近在群里,有人问如何深度比较2个对象相等,感觉很有意思,就自己研究了一下,并写了一个开源的小类库,地址如下https://github.com/lamondlu/ObjectEquality。 如果想直接使用这个类库,可以使用Nuget进行安装 对象比较有几种情况 1. 对象是值类型或者St
阅读全文
摘要:C 8.0中加入了一个新的范围类型(Range Type)。 这里我们首先展示一些代码,并一步一步为代码添加一些不同的东西, 为大家展示一下范围类型的功能和用法。 我们最原始的代码如下: c static void Main(string[] args) { var myArray = new st
阅读全文
摘要:什么是Libman 微软在Visual Studio 2017 15.8版本中内嵌了一个新的工具Library Manager。 Library Manager(简称Libman)是一个客户端库管理工具, 使用它可以很容易的管理项目中使用的客户端js库, css库等,Libman相当于一个针对客户端
阅读全文
摘要:今天在Review一个老项目的时候,看到一段奇怪的代码。 if (dto.Payment == null) continue; var entity = entries.FirstOrDefault(e => e.LedgerEntryID == dto.LedgerEntryID); dto.Pa
阅读全文
摘要:当Web Api 2.0使用OAuth2授权时,如何在Swagger中添加Authorization请求头? Swagger说明文档支持手动调用Api, 但是当Api使用OAuth2授权时,由于没有地方可以输入授权Token, 导致响应结果一直是401没有授权。 解决方案: 在Swagger配置文件
阅读全文
摘要:通常来说计划任务触发器会比简单触发器的使用频率高很多。如果你的任务是需要基于日历每天定时运行,那你就应该使用计划任务触发器,例如每周五中午12:00执行任务,或者每天早上9点执行任务。 计划任务表达式(Cron Expressions) 计划任务需要使用计划任务表达式(Cron Expression
阅读全文
摘要:触发器是Quartz.NET的另外第一个核心元素,他有2种类型,简单触发器(Simple Trigger)和计划任务触发器(Cron Trigger), 一个触发器可以绑定一个任务。 通用触发器属性 JobKey – 当前触发器绑定任务的唯一标识符 StartTimeUtc – 触发器的生效开始时间
阅读全文