如题c#获取当前运行应用程序所在目录和退出 前言 现在这浮躁社会,领导都是拍脑袋,大家都是图个短平快,压力进度给着,迫不得已在这种环境下大家都只能以搬砖的态度对待工作,都是用搜索引擎找 然后到处抄代码对吧。找了一片的方法,有AppDomain.CurrentDomain.BaseDirectory, ...
通过前一篇文章,已经了解了AvaloniaUI的环境安装以及项目创建,磨刀不误砍柴工,今天继续进行Avalonia基础知识学习,如有不足之处,还请指正。 ...
使用C#表达式进行以成员命名为锚点的数据转换 在软件开发中,有时因为某些原因如底层数据结构不可更改等需要将数据结构进行转换,这些数据类型之间没有继承关系,只有字段或属性名相同,往往需要手动编写数据转换代码,这样不仅繁琐,而且容易出错. 如果涉及到大量不同的类型转换,我们可以使用C#中的反射机制来转换 ...
一、封装背景与目标 在实际项目里,后台任务的执行模式丰富多样。有的任务需要确保上一次执行完成后,下一次才开始,以避免资源冲突和数据不一致;而有的任务则要求按照固定时间间隔周期性执行,即便前一次尚未结束。同时,对任务的监控、管理以及灵活配置也至关重要。我们封装BackgroundService的核心目 ...
线程同步确保多线程环境下共享资源安全使用,避免竞争条件和数据不一致。实现方式有避免资源共享、用户模式同步、内核模式同步和混合模式同步。 ...
本文主要介绍了在 C# 中实现网页截图的几种技术及相关要点。涵盖了 PuppeteerSharp、Selenium 和 HtmlToImage 三种方式,分别阐述了它们的安装步骤及核心代码。同时,针对在 C# 中寻找 Windows 上 chrome.exe 路径这一问题,分析了未安装 Google... ...
来源:https://learn.microsoft.com/zh-cn/aspnet/core/blazor/components/css-isolation?view=aspnetcore-8.0 CSS 隔离指将 CSS 范围限定到 Razor 组件,以简化 CSS 并避免与其他组件或库发 ...
背景 WebAPI 插件热插拔是指在不重启应用程序的情况下,能够动态地加载、更新或卸载功能模块(即插件)的能力。这种设计模式在软件开发中非常有用,尤其是在需要频繁更新或扩展功能的大型系统中。通过实现插件架构,可以将系统的不同部分解耦,使得它们可以独立开发、测试和部署。 对于WebAPI来说,这意味着 ...
预定义类型引用类型 C#支持两种预定义的引用类型:object 和string 名称 .NET类型 说明 object System.Object 根类型,其他类型都是从它派生而来的(包括值类型) string System.String Unicode字符串 1.object类型 许多编程语言和层 ...
.NET9 没有Swagger怎么办? 前言 在.NET9中,在创建Web API项目时,Swagger的使用与.NET8略有不同。.NET9不再内置Swagger,而是生成OpenApi标准的Json文件。如果想在.NET9中使用Swagger,需要手动安装,并配置Swagger。 在.NET9中 ...
如题,当CultureInfo是俄文(ru-RU)时,浮点数中的点是用逗号表达的,如1.1会显示成1,1,造成很多的麻烦,当然如果全系统中全部采纳逗号作为浮点也没问题,只要用户接受就可以,但有时需要继续用点号,那么解决办法如下。 1. 修改DefaultThreadCurrentCulture 我们 ...
概念 AOT是Ahead-of-Time的缩写,AOT是将C#程序提前编译为机器代码(通常为平台特定的二进制文件),在应用程序启动之前完成编译过程。 微软官方文档是这样说的 将应用程序发布为本机 AOT 会生成一个自包含的应用程序,并且已提前 (AOT) 编译为本机代码。原生 AOT 应用程序具有更 ...
1. 理解弹性 HTTP 请求机制 什么是弹性? 弹性是指系统在面对故障或异常情况时,能够保持或快速恢复到正常状态的能力。在 HTTP 请求的上下文中,弹性意味着当请求失败时,系统能够自动采取一系列措施(如重试、降级、断路等)来确保请求最终成功或优雅地处理失败。 为什么需要弹性 HTTP 请求机制? ...
.NET Framework 是微软推出的一个软件开发平台,主要用于构建和运行 Windows 应用程序。它是 .NET 生态系统的早期版本,专注于 Windows 平台,并提供了丰富的类库和运行时环境。 注意事项 跨平台限制:.NET Framework 主要适用于 Windows 平台,不支持跨 ...
预定义类型值类型 数据类型C#关键字(如 int、short 和 string) 从编译器映射到.NET数据类型。例如,在C#中声明一个int类型的数据时声明的实际是.Net System.Int32的一个实例。 这似乎很深奥,但其意义深远;这表示在语法上,可以把所有基本类型看成支持某些方法的类。例 ...
说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。 该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。 说明:OverallAuth2.0 是一个简单、易懂、功能强大的权限+可视化流程管理系统。 友情提醒:本篇文章是属于系列文章,看该 ...
BeginScope 方法是 .NET 中 ILogger 接口的一部分,用于创建日志记录的作用域(Scope)。这种作用域可以将特定的上下文信息包含在日志中,从而提高日志的可读性和调试效率。 配置日志包含作用域信息 首先,需要在日志配置中启用包含作用域信息。以 appsettings.json 为 ...
一:背景 1. 讲故事 高级调试训练营里的一位朋友找到我,说他们跑在linux上的.NET程序出现了内存泄露的情况,上windbg观察发现内存都是IMAGE给吃掉了,那些image都标记了 doublemapper__deleted_ 字样,问我为啥会这样?说实话作为我们这些调试者非常喜欢和这样的人 ...
一:背景 1. 讲故事 今年以来不知道为啥总有些朋友加我微信,让我帮忙分析下操作系统蓝屏问题,我也觉得挺好奇的,就问了其中一位朋友,说是B站来的,我就在拼命回忆,为啥会找我分析蓝屏?突然想到了去年好像录了一集关于 CrowdStrike 的热点事件。。。我本来是做.NET程序的故障分析,这操作系统的 ...
一、前言 在上一篇 (原创)[.Net] 进程间通信框架(基于共享内存)——SimpleMMF 中,发布了v1.0版,最大的问题是:CPU占用较高,至少40-50%。 这既与我的开发水平有关,也与SimpleMMF诞生环境有关,这个主要是用在数字孪生各软件之间同步数据,而部署软件的工作站性能都强悍, ...