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

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

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

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

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

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

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

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

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

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

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

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

示例代码如下: var oldPdf = PdfReader.Open("测试.pdf"); foreach (var oldPage in oldPdf.Pages) { // 插入一个页面[......]继续阅读

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

源文件是 PDF 全元素,也就是各种点线、文字、表格组成,需要将内容全部转成图片形式存储到 pdf 中。 引入: <ItemGroup> <PackageReference Include="FreeSpire.PDF" Version="8.6.0" />[......]继续阅读

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

ImageMagick 是一个强大的图像处理库,支持100多种主要的文件格式(不包括子格式)。使用 Magick.NET,你可以在 c #/vb.net/. net Core 应用程序中使用 ImageMagick,而无需在服务器或桌面上安装 ImageMagick。 项目地址:https://gi[......] 继续阅读

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

Maomi.Mapper 项目地址:https://github.com/whuanle/Maomi.Mapper 注:本项目用于教学目的,性能较差,请勿用于生产环境。 MaomiMapper 是一个使用表达式树构造生成对象成员映射的框架,即对象映射框架。 虽然 MaomiMapper 性能不啥样,[......] 继续阅读

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

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

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

C# 编写 SignalR 客户端时需要手动注入客户端方法: connection.On<string, string>("ReceiveMessage", (user, message) => { t[......]继续阅读

2023年9月25日 1条评论 1680点热度 3人点赞 痴者工良 阅读全文

研究了很久源码,发现了其运行机制。 如果 BlazorWebView 跳转的页面不是 https://0.0.0.0 ,那么就会使用客户端之外的浏览器打开页面。 // 这里的地址允许在浏览器中打开 public static readonly Uri[] URLS = new Uri[......]继续阅读

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

模型类: public class Test { [JsonConverter(typeof(string))] public int Value { get; set; } } API 接口: [HttpPost("aaa")[......]继续阅读

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

using System; using System.Runtime.CompilerServices; using System.Threading.Tasks; async Task Main() { Task<int> task = CreateTask(); i[......]继续阅读

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

默认 webview2 使用英文语言显示,包括控制台、打印台等地方,都是英文提示,因此可以修改为本地语言。 public static void SetWebviewLanguage(string language = "zh-CN") { v[......]继续阅读

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

默认 Webview2 会被安装到系统目录,可能会导致程序启动时权限不足,无法使用 Webview2,以及多版本程序之间发生存储目录冲突。 因此需要自定义设置 Webview2 目录,最好就存储在程序安装目录下。 首先修改 App.xaml 文件,添加一行: <Application.[......]继续阅读

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

部署 Apollo 之后,创建一个应用。 然后创建命名空间,选择 private 创建私有命名空间,选择 json 格式。 点击修改文本,填入 json 内容。 然后在 .NET 程序中引入包 <PackageReference Include="Com.Ctrip.F[......]继续阅读

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

首先是中间件,它决定了有时间显示哪些分组。 可以从 IApiDescriptionGroupCollectionProvider 服务中获取所有 API,然后通过 API 进行识别,检查是否有分组。 if (context.HostingEnvironment.I[......]继续阅读

2023年8月15日 0条评论 1824点热度 2人点赞 痴者工良 阅读全文

在 signalR 中如需获取客户端的连接信息,可以使用 IHttpConnectionFeature 获取客户端通讯的 IP 和端口。 // 获取服务 var feature = Context.Features.Get<IHttpConnec[......]继续阅读

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