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

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

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

2024年4月3日 0条评论 288点热度 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条评论 789点热度 1人点赞 痴者工良 阅读全文

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

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

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

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

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

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

在对话中添加参数 使用 CreateFunctionFromPrompt() 为通过提示模板指定的提示创建 KernelFunction 实例。 KernelFunction 表示可以作为语义内核工作负载的一部分调用的函数。Semantic Kernel 中对 LLM 的调用就叫 KernelFun[......] 继续阅读

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

EF Core 在执行插入操作时,不会直接将数据插入数据库,而是先将数据缓存在内存中。只有在以下情况下,EF Core才会将数据插入数据库: 显式调用 SaveChanges() 方法 上下文对象被销毁 达到上下文配置的批量插入数量 EF Core 将数据缓存在内存中的好处包括: 提高性能,批量[......] 继续阅读

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

编写界面控件,元素由 Grid 和一些控件组成,其中使用了 Expander 以便可以扩展面板内容。 <Grid> <Grid MinWidth="100" Height="50" VerticalAlignment="Top"[......]继续阅读

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

新建一个项目,项目只能使用 netstandard2。 其 csproj 文件完整内容如下: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netst[......]继续阅读

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

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

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

包 CommunityToolkit.Mvvm 主要用于代码生成,能够为用户减少编写大量的代码,在 WPF 中可以实现 MVVM 设计模式,降低代码复杂度。 引入项目包: <PackageReference Include="CommunityToolkit.Mvvm" Versio[......]继续阅读

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