当一个字段为 object 类型时,System.Text.Json 自动设置 JsonElement 类型,而不是对应的类型,因此在很多情况下会出现奇怪的问题。 因此这里只要有两个地方加上代码,缓解这一情况。 第一步,实现转换器,当一个类型是 object 时,如果 json 是简单类型,则直接使[......] 继续阅读

2024年7月10日 0条评论 238点热度 0人点赞 痴者工良 阅读全文

.NET 中的日志使用技巧 Serilog Serilog 是 .NET 社区中使用最广泛的日志框架,所以笔者使用一个小节单独讲解使用方法。 示例项目在 Demo2.Console 中。 创建一个控制台程序,引入两个包: Serilog.Sinks.Console Serilog.Sinks.Fil[......]继续阅读

2024年6月18日 0条评论 420点热度 1人点赞 痴者工良 阅读全文

文档说明 作者:痴者工良 文档地址:https://mmq.whuanle.cn 仓库地址:https://github.com/whuanle/Maomi.MQ 作者博客: https://www.whuanle.cn https://www.cnblogs.com/whuanle 导[......] 继续阅读

2024年6月13日 0条评论 1128点热度 0人点赞 痴者工良 阅读全文

关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.co[......] 继续阅读

2024年6月5日 0条评论 638点热度 0人点赞 痴者工良 阅读全文

关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.co[......] 继续阅读

2024年6月3日 0条评论 560点热度 1人点赞 痴者工良 阅读全文

t4 模板文件 第一步,在项目中设置 t4 模板文件。 不知道 T4 模板的,可以自行查阅资料或查看 https://learn.microsoft.com/zh-cn/visualstudio/modeling/code-generation-and-t4-text-templates?view[......] 继续阅读

2024年5月7日 0条评论 894点热度 2人点赞 痴者工良 阅读全文

string.Format 的功能非常有限,因此需要使用 SmartFormat.NET 框架来完成丰富的字符串插值功能。它可以使用类似于字符串的最小化、直观的语法将各种数据源格式化为字符串。格式。所有格式化都在运行时进行。SmartFormat 使用扩展来提供命名占位符、本地化、多元化、性别结合以[......] 继续阅读

2024年4月10日 0条评论 1078点热度 0人点赞 痴者工良 阅读全文

整体逻辑 ASP.NET Core gRPC 的使用很简单,服务注册和中间件只有两行代码。 var builder = WebApplication.CreateBuilder(args); // Add services to the container.[......]继续阅读

2024年4月3日 0条评论 1224点热度 0人点赞 痴者工良 阅读全文

AI is becoming increasingly popular, so I am writing a simple introductory tutorial for readers in the hope that they will enjoy it. Many people want[......] 继续阅读

2024年3月25日 0条评论 2377点热度 1人点赞 痴者工良 阅读全文

为什么要写这个教程 在毕业之后,读者写过了大量的文章和开源项目,正是坚持一边学习一边输出,所以笔者最终从一个生菜鸡进化为一个熟菜鸡。 在程序员的成长中,我们会在思路,如何学习、如何进步,比如要成长为一个架构师,需要具备什么样的能力。比如说技术能力,技术能力是最核心的基础,那么我们技术上要达到哪种程度[......] 继续阅读

2024年3月21日 2条评论 2390点热度 5人点赞 痴者工良 阅读全文

初始化 KernelMemory 启动时,会检查配置,即使当前代码没有使用到相关功能。 var hasQueueFactory = (this._memoryServiceCollection.HasService<QueueClientFactory>());[......]继续阅读

2024年3月13日 0条评论 1524点热度 1人点赞 痴者工良 阅读全文

万字长文学会对接 AI 模型:Semantic Kernel 和 Kernel Memory,工良出品,超简单的教程 目录: 配置环境 部署 one-api 配置项目环境 模型划分和应用场景 聊天 提示词 引导 AI 回复 指定 AI 回复特定格式 模板化提示 聊天记录 函数和插件 直接调用插件[......] 继续阅读

2024年2月29日 0条评论 1712点热度 1人点赞 痴者工良 阅读全文

背景:最近使用 Debezium 做数据库数据监听工具,然后使用 C# 开发管理工具对接 kafka 获取增量同步的数据,这个 C# 管理工具需要支持自定义下游数据库映射,因此再新增加映射关系时需要批量将上游数据全量同步到下游,然后才能从 Kafka 中开始使用增量数据同步,以便保持上下游的数据一致[......] 继续阅读

2023年12月21日 0条评论 2176点热度 0人点赞 痴者工良 阅读全文

[TOC] 在业务开发中,使用数据库事务是必不可少的。而开发中往往会使用各种 ORM 执行数据库操作,简化代码复杂度,不过,由于各种 ORM 的封装特性,开发者的使用方式也不一样,开发者想要了解 ORM 对事务做了什么处理是比较难的。因此,本文介绍数据库事务基础、Ado.net 事务、如何封装 Db[......] 继续阅读

2023年12月12日 0条评论 1613点热度 0人点赞 痴者工良 阅读全文

继承 DiagnosticAnalyzer 。 检测 async void 注册监听器: public override void Initialize(AnalysisContext context) { context.ConfigureG[......]继续阅读

2023年11月23日 0条评论 1478点热度 0人点赞 痴者工良 阅读全文

A 项目中含有中文字符串目录路径,导致使用 Jenkins 时调用 Powershell 编译报错。 无论是设置环境变量还是使用 chcp 命令等,均无效。 这是因为默认 csproj 是使用 utf8-bom 保存的。 这样的特性会导致在本地电脑开发环境中正常,但是在服务器中编译就会报错。 需要[......] 继续阅读

2023年11月23日 0条评论 1378点热度 0人点赞 痴者工良 阅读全文

MainWindow 窗口使用 Blazor WebView2: <Border Margin="0,0,0,0" Background="Transparent" BorderThickness="0"[......]继续阅读

2023年11月22日 0条评论 1236点热度 0人点赞 痴者工良 阅读全文

先引入 PInvoke.net 或 Microsoft.Windows.CsWin32,请参考: https://www.whuanle.cn/archives/21436 定义两个获取屏幕去掉任务栏的长宽高函数: public static int GetSystemMetrics[......]继续阅读

2023年11月22日 0条评论 680点热度 0人点赞 痴者工良 阅读全文

PInvoke.net 是官方用于操作 Win32 API 的库,但是已经归档了。也就是后续需要使用 Microsoft.Windows.CsWin32 来操作 win32 API。 但是 Microsoft.Windows.CsWin32 比较麻烦,因为 Microsoft.Windows.C[......] 继续阅读

2023年11月22日 2条评论 1540点热度 0人点赞 痴者工良 阅读全文

如图: 有两种配置形式。 一种是在项目中(可以启动的项目,类库不行)配置模板文件,另一种是在项目编译之后配置。 第一种方法在项目中新建一个 runtimeconfig.template.json 文件。 示例如下: { "runtimeOptions": { "configProper[......]继续阅读

2023年11月22日 0条评论 770点热度 0人点赞 痴者工良 阅读全文
123459