dotnet
dotnet C# 如何使用 MemoryFailPoint 检查是否有足够的内存资源来执行操作
在 dotnet 里面的 MemoryFailPoint 可用来测试当前进程是否还能分配申请给定大小的内存空间,这个是一个高级编程的类型,大部分情况下都不需要用到。本文内容由 New Bing 编写,将和大家介绍 MemoryFailPoint 的使用方法 当您在使用 .NET Framework ......
dotnet C# 推荐一个适合新手入门阅读学习的控制台游戏项目
对于 C# 编程新手,学习语法和框架是必要的,但是如何将它们灵活地运用到实际项目中,是一个更高层次的挑战。如果只是死记硬背语法规则和框架用法,而没有足够的编程实践,很难提高编程水平和逻辑思维。这个时候,阅读一些优秀的开源项目,可以让我们从中学习到别人的编码风格、代码组织方式,代码逻辑编写等等,从而提 ......
dotnet6 C# 一个国内还能用的 NTP 时间校准客户端的实现
本文来记录一个我自己在使用的 NTP 时间校准客户端的实现 核心方法是在国内使用 腾讯 和 阿里 提供的 NTP 时间服务器来获取网络时间,如果连接不上,再依次换成 国家服务器 和 中国授时 服务,如果再连不上,那就换成微软自带的 time.windows.com 服务 从 NTP 服务上获取当前的 ......
dotnet C# 通过 Vortice 将 ID2D1CommandList 作为特效的输入源
使用 Direct2D 过程中将可以使用到 Direct2D 强大的特效功能,比如给某些界面绘制内容添加特效支持。本文将告诉大家如何通过 Vortice 将 ID2D1CommandList 作为特效的输入源,从而实现给某些绘制好的界面元素叠加特效 在上一篇 [dotnet C# 通过 Vortic ......
dotnet DirectX 通过 Vortice 控制台使用 ID2D1DeviceContext 绘制画面
在上一篇博客里面告诉大家,如何使用 Vortice 从零开始控制台创建 Direct2D1 窗口。上一篇博客采用的是 CreateDxgiSurfaceRenderTarget 的方式拿到了 ID2D1RenderTarget 进行绘制,本文将和大家介绍另一个方式,通过 ID2D1DeviceCon ......
dotnet C# 通过 Vortice 使用 Direct2D 的 ID2D1CommandList 入门
本文将告诉大家如何通过 Vortice 使用 D2D 的 CommandList 功能 本文属于 DirectX 系列博客,更多 DirectX 和 D2D 以及 Vortice 库的博客,请参阅我的 [博客导航](https://blog.lindexi.com/post/%E5%8D%9A%E5 ......
dotnet 6 在 System.Text.Json 使用 source generation 源代码生成提升 JSON 序列化性能
这是一个在 dotnet 6 早就引入的功能,此功能的使用方法能简单,提升的效果也很棒。使用的时候需要将 Json 序列化工具类换成 dotnet 运行时自带的 System.Text.Json 进行序列化,再加上约 5 行的辅助代码,即可完成对接 官方文档: [如何在 System.Text.Js ......
dotnet 已知问题 使用 Directory
在 dotnet 里面,可以使用 Directory.EnumerateXXX 系列方法进行枚举文件或文件夹。在准备枚举驱动器根路径的文件或文件夹时,可能获取到错误的路径。错误的步骤在于传入的是如 C: 不带斜杠的路径,且存在同驱动器磁盘下的非根路径工作路径 特别感谢 [神樹桜乃](https:// ......
dotnet 将控制台 Console
很多伙伴喜欢使用 Console.WriteLine 打日志,也许是打起来顺手。打完了之后,又想着,要是能够输出到本机文件那就更好了。既然很多伙伴都有这个想法,那 dotnet 自然就是有方便的方法让咱来实现此需求。只需要调用 Console.SetOut 方法,即可将控制台的输出重定向到一个 Te ......
dotnet 理解 IConfigurationProvider 的 GetChildKeys 方法用途
我最近遇到了一个有趣的 Bug 让我调试了半天,这个 Bug 的现象是我的好多个模块都因为读取不到配置信息而炸掉,开始我没有定位到具体的问题,以为是我的配置服务器挂掉了。经过了半天的调试,才找到了是我新加入的使用 COIN 配置库的 ReadonlyCoinConfiguration 类型导致的,此 ......
dotnet 世界猜测 随机数的小测试
这是一个半技术向的博客,主题来源于我读过的某本书的片段,这是一个稍稍有些前置知识的故事,主题的大概内容就是假定世界存在某个规则序列,通过一代代的探索,可以获取到此序列的内容。本文将模拟此情形,写一个随机数的小测试应用,来不严谨的证明,或者准确来说是用代码讲述这个故事 天有五贼,见之者昌。 传说,在一 ......
dotnet 读 WPF 源代码笔记 聊聊 HwndWrapper
我在阅读 WPF 源代码,在 HwndWrapper 的静态构造函数看到了申请了 HwndWrapper.GetGCMemMessage 这个 Windows 消息,好奇这个消息是什么功能的。通过阅读 WPF 源代码和写测试应用,了解到这是一个完全用来内部测试或调试的消息,没有任何业务上的功能 在 ......
dotnet 将任意时区的 DateTimeOffset 转换为中国时区时间文本
本文告诉大家在拿到任意时区的 DateTimeOffset 对象,将 DateTimeOffset 转换为使用中国的 +8 时区表示的时间 在开始之前,需要说明的是,采用 DateTimeOffset 会比 DateTime 更优的一个点是 DateTimeOffset 是带上时区的,这就意味着方便 ......
dotnet 使用 CsWin32 库简化 Win32 函数调用逻辑
很多开发者,包括开发老司机们,在碰到需要调用 Win32 函数时,都有一个困扰,那就是我应该如何去调用。有两个主要的选项,第一就是自己写 PInvoke 代码,第二就是使用其他大佬给许多 Win32 函数封装好的库。然而这两个方法都有各有各的缺点,第一个方法缺点是可能工作量会很大,需要写方法,写结构 ......
dotnet win32 使用 WIC 获取系统编解码器
在 Windows 系统上,有一个很重要的概念是 Windows Imaging Component 也就是 WIC 层,这是专门用来处理多媒体相关的系统组件,特别是用来处理图片相关,包括编码和解码和处理图片。开发者可以扩展 WIC 层的编解码器,从而让系统可以支持更多格式的多媒体文件。本文将告诉大 ......
dotnet 警惕判断文件是否存在因为检查网络资源造成超长等待
在使用 System.IO.File.Exists 方法时,绝大部分的情况下都是一个非常快捷且没有成本的,但是如果判断的文件是否存在,是从非自己完全控制的逻辑下进入的,那就需要警惕是否判断的文件路径属于一个网络资源。判断一个网络资源是否存在,是一个耗时不可确定行为,很有可能造成主线程卡顿 如果是传入 ......
dotnet 警惕 ConcurrentDictionary 使用 FirstOrDefault 获取到非预期的首项
在 dotnet 里面的 ConcurrentDictionary 是一个支持并发读写的线程安全字典,在这个字典里面有一些行为会出现随机性,即多次执行相同的代码返回的结果可能不相同。本文记录在 ConcurrentDictionary 使用 FirstOrDefault 获取到非预期的首项的问题 在 ......
dotnet 记 TaskCompletionSource 的 SetException 可能将异常记录到 UnobservedTaskException 的问题
本文将记录 dotnet 的一个已知问题,且是设计如此的问题。假定有一个 TaskCompletionSource 对象,此对象的 Task 没有被任何地方引用等待。在 TaskCompletionSource 被调用 SetException 或 TrySetException 方法时,将会记录一 ......
dotnet 读 WPF 源代码笔记 GlyphRun 的 DeviceFontName 的功能是什么
在 WPF 里面的 GlyphRun 里,有一个令人迷惑的 DeviceFontName 属性,似乎给这个属性传入什么值,结果都不会有变更。通过阅读源代码,可以了解到,这是一个没什么用途的属性。本文将告诉大家这个属性的细节逻辑 在上一篇博客 [WPF 简单聊聊如何使用 DrawGlyphRun 绘制 ......
dotnet 读 WPF 源代码笔记 渲染层是如何将字符 GlyphRun 画出来的
从业务代码构建出来 GlyphRun 对象,在 WPF 的渲染层里,如何利用 GlyphRun 提供的数据将字符在界面呈现出来。本文将和大家聊聊从 WPF 的渲染层获取到 GlyphRun 数据,到调用 DirectX 的各个渲染相关方法的过程,也就是 WPF 绘制文本字符的原理或者实现方法 大家印 ......
dotnet 提升 ToUpper 性能
在应用软件启动过程中,客户端应用软件是对性能敏感的。比如在解析命令行参数的时候,有时候需要进行字符串处理逻辑。一般来说命令行参数都是语言文化无关的,在需要进行全大写或全小写转换过程中,采用 ToUpperInvariant 替换 ToUpper 方法可以避免初始化 icu 模块,减少 icu 模块初 ......
dotnet 6 修复找不到 EnumeratorToEnumVariantMarshaler 问题
我将在一个 .NET Framework 项目升级到 dotnet 6 时发现构建不通过,因为原先的代码使用到了 EnumeratorToEnumVariantMarshaler 类型,在 dotnet 6 里面找不到。本文将告诉大家如何修复此问题 在 .NET Framework 定义的 [Enu ......
Dotnet6 NPOI操作Excel基本操作总结
## 背景 - 需要对Excel进行读取和写入,目前使用Dotnet6开发环境,故直接使用。 - 达到的效果:兼容`.xls`和`.xlsx`,识别行为空自动跳过,识别显示值,识别格式内容 ## 步骤 - `Dotnet 6`Nuget 安装 `NPOI`, 具体版本 `2.6.1`,tips: 搜 ......
skyapm-dotnet 源码执行
监听System.Data.SqlClient 为例 通过观察者模式和 DiagnosticListener获取监听数据, 在开始InstrumentationHostedService实现IHostedService启动 然后通过 DiagnosticListener.AllListeners.S ......
dotnet SemanticKernel 入门 注入日志
使用 SemanticKernel 框架在对接 AI 时,由于使用到了大量的魔法,需要有日志的帮助才好更方便定位问题,本文将告诉大家如何在 SemanticKernel 注入日志 ......
dotnet SemanticKernel 入门 调用原生本机技能
本文将告诉大家如何在 SemanticKernel 里面调用原生本机技能,所谓原生本机技能就是使用 C# 代码编写的原生本地逻辑技能,这里的技能可讲的可不是游戏角色里面的技能哈,指的是实现某个功能的技能,这是构成 AI 强大能力的基础 ......
dotnet SemanticKernel 入门 将技能导入框架
在上一篇博客中和大家简单介绍了 SemanticKernel 里的技能概念,接下来咱准备将 技能 导入到 SemanticKernel 框架里面,进行一个管道式调用 ......
dotnet SemanticKernel 入门 自定义变量和技能
本文将告诉大家如何在 SemanticKernel 框架内定义自定义的变量和如何开发自定义的技能 本文属于 SemanticKernel 入门系列博客,更多博客内容请参阅我的 [博客导航](https://blog.lindexi.com/post/%E5%8D%9A%E5%AE%A2%E5%AF% ......
在Linux上安装dotnet core
1. Ubuntu 22.04 1.1 安装SDK (包含Runtime,可以编译源码并运行程序) $ sudo apt update $ sudo apt install dotnet-sdk-7.0 1.2 安装Runtime (仅可运行程序) 安装ASP.NET Core Runtime (除 ......
dotnet-csharp (c#,net)PDF文档分享
链接: dotnet-csharp.pdf_免费高速下载|百度网盘-分享无限制 (baidu.com) 提取码: 4s8n 文档截图: ......