[TOC] 背景 其实,规划这篇文章有一段时间了,但是比较懒,所以一直拖着没写。 最近时总更新太快了,太卷了,所以借着 .NET 7 正式版发布,熬夜写完这篇文章,希望能够追上时总的一点距离。 本文主要介绍如何在 .NET 和 Go 语言中如何生成系统(Windows)动态链接库,又如何从代码中引用[......] 继续阅读

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

背景 因为本地开发时,内网的 https 是不安全的 https。 会导致 js 发不出请求。 为了让 https 安全,这里实现了本地 localhost 自动生成证书以及安装的过程。 写代码 生成证书使用的是 .NET 自带的库,不需要引入第三方包。 using System.Security[......]继续阅读

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

有以下 N 个因子: new List<string>{"A","B","C"}, // 位置 0 new List<string>{"1","2","3"}, // 位置 1 new List<str[......]继续阅读

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

在 Microsoft.Maui 的 Microsoft.Maui.LifecycleEvents 中,有个管理 MAUI 窗口生命周期的扩展。 public static MauiAppBuilder ConfigureLifecycleEvents( this MauiAppBuilder bu[......]继续阅读

2022年10月31日 0条评论 1583点热度 0人点赞 痴者工良 阅读全文

说明 RulesEngine 是 C# 写的一个规则引擎类库,读者可以从这些地方了解它: 仓库地址: https://github.com/microsoft/RulesEngine 使用方法: https://microsoft.github.io/RulesEngine 文档地址: https:[......] 继续阅读

2022年10月26日 1条评论 1344点热度 3人点赞 痴者工良 阅读全文

因为结构体或者值类型在传递时,是值复制,导致传递后修改其值,原先的值不会发生改变。 即使使用 ref 做参数,也没法改变传递数组是值复制的问题。 阅读 .NET 源码是发现了 .NET 6 的一个 API,可以很方便完成这个任务,让结构体像引用类型一样。 using System.Runtime.I[......]继续阅读

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

使用的类型是 结构体,如果是对象,则在创建内存块的时候,需要使用别的方式。 子所以使用块的形式而不是直接管理一个对象,是基于多个方面考虑的。 1,使用块的形式,可以一次性分配连续的内存;如果逐个分配,会导致碎片太多、每次分配都需要时间; 缺点: 1,不能扩增或减少对象数量、块大小; 2,以块的形式存[......] 继续阅读

2022年10月24日 0条评论 1678点热度 3人点赞 痴者工良 阅读全文

后面改进了对象池算法,使用结构体来存储,其性能变得非常强。 参考对象池算法:https://www.whuanle.cn/archives/20888 新版本 定义结构体存储每个字段: public struct JsonField { public string? Name {[......]继续阅读

2022年10月24日 0条评论 1610点热度 1人点赞 痴者工良 阅读全文

数据: 格式: { "a_tttttttttttt": 1001, "b_tttttttttttt": "邱平", "c_tttttttttttt": "Nancy Lee", "d_tttttttttttt": "buqdu", "e_tttttttt[......]继续阅读

2022年10月20日 0条评论 1180点热度 0人点赞 痴者工良 阅读全文

可复用Stream 需要安装 Microsoft.IO.RecyclableMemoryStream。 internal class StreamHandler { // Stream pool private static readonly Rec[......]继续阅读

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

背景 最先采用的是 Maui + Blazor 开发,使用社区热度比较高的 Blazor UI 框架。 可是开发进行过程中, Maui 巨多坑,Blazor UI 框架也是巨多坑,使用 Blazor UI 写的页面和样式,过不了设计师和产品经理的是法眼。 最终决定使用原生前端结合,生成静态内容放到[......] 继续阅读

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

bool IsDefine<T1, T2>(T2 t) where T1 : Enum where T2 : Enum { var value = Unsafe.As<T2, T1>(ref t); var array = Enum.GetValue[......]继续阅读

2022年10月13日 0条评论 975点热度 0人点赞 痴者工良 阅读全文

在项目使用分部类,如 Razor、Blazor、Wpf 等项目中,编译会生成 .g.cs 文件,但是因为出现了问题,不能编译成功,查看源代码,找不出错误,只能开始输出 .g.cs ,查看文件进行检查。 <PropertyGroup> <EmitCompilerGenerat[......]继续阅读

2022年10月13日 0条评论 886点热度 0人点赞 痴者工良 阅读全文

// json => Dictionary static Dictionary<string, string> Read(string jsonData) { var reader = new Utf8Jso[......]继续阅读

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

private static void RunPowershellScript(string scriptFile) { ProcessStartInfo ps = new ProcessStartInfo(@"powershell.exe",scriptFile) { RedirectSt[......]继续阅读

2022年10月9日 0条评论 1254点热度 0人点赞 痴者工良 阅读全文

using System.Resources; var assembly = typeof(Program).Assembly; ResourceManager resourceManager = new ResourceManager("update.Prope[......]继续阅读

2022年10月8日 0条评论 1070点热度 0人点赞 痴者工良 阅读全文

项目发布参数: dotnet publish -c Release -r win-x64 -p:PublishProfile=FolderProfile --no-self-contained dotnet publish -c Release -r win-x64 -p:PublishProfi[......]继续阅读

2022年10月8日 0条评论 1796点热度 2人点赞 痴者工良 阅读全文

ASP.NET Core Response.Body 默认是 HttpResponseStream,其主要特征是只能追加写,不能读取也不能修改。 所以最根本方法是替换 HttpResponseStream。 随便设置一个中间件,或者将 HttpContext 拿出来,定义变量 context。 替[......] 继续阅读

2022年9月30日 0条评论 1744点热度 0人点赞 痴者工良 阅读全文

做单元测试的时候往往会使用 Moq 等库,对代码进行 Mock。 但是有些过程,我们希望除了 Mock 方法之外,能够在 Mock 方法中,判断传递的参数是否正确。 因为常规的 Mock ,是返回一个值。 var mock = new Mock<Test>(); mock.Setup&[......]继续阅读

2022年9月26日 0条评论 1928点热度 0人点赞 痴者工良 阅读全文

Windows.ApplicationModel.Package.Current.InstalledLocation.Path [......] 继续阅读

2022年9月23日 0条评论 1296点热度 0人点赞 痴者工良 阅读全文
1234514