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

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

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

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

您大可以相信工良出品。本文从 C# 角度开始一点点编码,逐步了解 RabbitMQ 编程的各种细节,学会消息处理机制和多种场景下的开发细节。虽然文章比较长,但是不会啰啰嗦嗦说一堆理论。

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

Spire.pdf 等打印 pdf 的库需要付费,因此本篇文章是通过使用 Google 开源的 PDFium 项目实现打印, PDFium 项目开源且跨平台。 bblanchon.PDFium.Win32 则是一个使用 C# 封装了 PDFium 的库。 引入三个库: <ItemGro[......]继续阅读

2023年10月25日 3条评论 2060点热度 0人点赞 痴者工良 阅读全文

图片转换需要安装:https://ghostscript.com/ 引入: <ItemGroup> <PackageReference Include="Magick.NET-Q16-AnyCPU" Version="13.4.0" />[......]继续阅读

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

自家的软件安装后,需要更新,更新文件完成后还需要修改注册表中关于程序的版本号。 软件安装后,会被写入注册表中。 所以只需要修改注册表的 DisplayVersion 即可,不同的程序可能还需要修改其它属性,例如 Version、DisplayName。 修改注册表可能需要管理员权限,这要看软件是[......] 继续阅读

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

System.IO.Compression 是官方发布的一个由于解压缩的工具包,默认使用 utf8 编码解压缩文件。 但是在 Windows 上,编码比较混乱,如果文件或目录是中文名称,那么解压后会出现乱码,即使压缩包都是 UTF8 编码,.NET 解压也会出现乱码问题,所以需要使用 GB2312[......] 继续阅读

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

Jq 是一个轻量级和灵活的命令行 JSON 处理器。 官网: https://jqlang.github.io/jq/ https://jqlang.github.io/jq/manual/ Jq 可以从 JSON 中解析数据以及将数据替换到字段表达式生成新的 Json。 例如一个 JSON: [......]继续阅读

2023年6月6日 2条评论 1211点热度 1人点赞 痴者工良 阅读全文

注意, C# RSA 只能导入导出 PKCS1 的公钥,不能处理 PKCS8 的。否则会报错。 C# RSA 可以导出导入 PCKS8 的私钥,可以按照 pem 格式处理,也可以按照文本格式处理, 示例如下: using Newtonsoft.Json; void Main() { var[......]继续阅读

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

void Main() { string str = "A-A01A05-A01-01-02"; byte[] data = new byte[16]; var span = data.AsSpan(); ulong l = 0; int index = 1[......]继续阅读

2023年2月13日 0条评论 1780点热度 3人点赞 痴者工良 阅读全文

[TOC] 作者:痴者工良 个人网站:https://www.whuanle.cn 博客园:https://www.cnblogs.com/whuanle/ 本教程地址:https://kafka.whuanle.cn/ 本教程是关于 Kafka 知识的教程,从 C# 中实践编写 Kafka 程序,[......] 继续阅读

2023年1月27日 0条评论 2310点热度 2人点赞 痴者工良 阅读全文

环境搭建和生成 首先安装 Java 8 以上的版本。 打开 https://www.antlr.org/download.html, 找到 "ANTLR tool itself ",或者直接点击 https://www.antlr.org/download/antlr-4.11.[......] 继续阅读

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

连接 如果不想对外暴露密码,可以自行写一个 AuthorizationHeader,只使用 Base64 处理后的 Basic 认证密钥。 using Elastic.Clients.Elasticsearch; using Elastic.Transport; public class Prog[......]继续阅读

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

1,一个字段是数组,如果数组中不存在这个记录时,向数组增加一个记录。 FilterDefinitionBuilder<WorkflowDo> fd = Builders<WorkflowDo>.Filter; var f = f[......]继续阅读

2022年12月7日 0条评论 1742点热度 28人点赞 痴者工良 阅读全文

背景: 查找了很多库,要么收费,要么太旧用不了。 经过大量测试,写了打印机的相关代码。 实现的代码不依赖于第三方库。 核心代码 引入这两个库: System.Drawing.Printing Vanara.PInvoke.Printing 这两个库用于使用 winspool.drv 服务,可以避免编[......] 继续阅读

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

代码示例如下: System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;[......]继续阅读

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

首先在要被执行的 类型 加上参数: [Option(Description = "CloudEvents 'source' (default: urn:example-com:mysource:abc)", LongName = "source", ShortName = "s")][......]继续阅读

2022年11月19日 0条评论 1504点热度 0人点赞 痴者工良 阅读全文

引入这个库: YamlDotNet 配置示例: services.AddYamlDotNetSerializer( serializer => serializer .IncludeNonPubli[......]继续阅读

2022年11月19日 0条评论 1656点热度 0人点赞 痴者工良 阅读全文

从 ServerlessWorkflow 中学习到一个有趣的 NewtonsoftJson 配置。 var newtonsoftJsonDefaultConfig = (JsonSerializerSettings settings) => {[......]继续阅读

2022年11月19日 0条评论 1377点热度 1人点赞 痴者工良 阅读全文

ISO8601 规定了时间格式。 在 Go 语言中,Duration 就实现了这种时间格式。 package main import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t) } 输[......] 继续阅读

2022年11月19日 0条评论 2578点热度 0人点赞 痴者工良 阅读全文
123458