Dependency Injection 8.0新功能——KeyedService
2024/5/27 11:31:42

本文只介绍 . Dependency Injection 8.0新功能——KeyedService,假定读者已熟练使用之前版本的功能。 注册带Key的类 8.0之前,注册一个类往往是AddSingletonIFoo Foo(),8.0添加了一个新功能:“可以注册一个带Key的类”AddKeyedSingletonIFoo Foo("keyA")。获取服务方法由GetServiceIFoo()变成了GetKeyedServiceIFoo("keyA"),并且调用这两个方法创建出来的对象是不同的。如果想通过构

记一次 .NET 某餐饮小程序 内存暴涨分析
2024/5/27 11:31:41

一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序内存异常高,用 vs诊断工具 加载时间又太久,让我帮忙看一下到底咋回事,截图如下:确实,如果dump文件超过 10G 之后,市面上那些可视化工具分析起来会让你崩溃的,除了时间久之外这些工具大多也不是用懒加载的方式,比如 dotmemy 会把数据全部灌入内存,针对这种dump,你没个32G内存就不要分析了,这也是 windbg 在此类场景下的用武之地。 闲话不多说,朋友的dump到了,赶紧分析一波。 2. 到底是谁吃了内存 还是那句话,用 !addre

win10 uwp 简单制作一个 Path 路径绘制的图标按钮
2024/5/27 11:31:40

本文告诉大家在 UWP 或 WinUI 3 里面如何简单制作一个由 Path 几何路径图形绘制的图标按钮先在资源里面定义按钮的样式,重写 Template 属性,通过在 Template 里面放入 Path 绑定 Data 到内容从而实现让 Path 显示集合路径图形,代码如下Style x:Key="Style.TitlebarButton" TargetType="Button"Setter Property="Background" Value="Transparent" Setter Proper

UNO 的 SamplesApp.Skia.Gtk 丢失字体文件抛出空异常
2024/5/27 11:31:39

在运行 UNO 的 SamplesApp.Skia.Gtk 例子程序时,如果没有拷贝字体文件夹,导致字体丢失,将会在运行的时候抛出 NullReferenceException 空异常抛出的异常堆栈大概如下 Uno.UI.dll!Windows.UI.Xaml.Documents.Inline.GetFont(string name = "msappx:AssetsFontsunofluentuiassets.ttf#Symbols" Windows.UI.Text.FontWeight weight

关于Unity 如何与Blazor Server结合
2024/5/27 11:31:36

关于Unity 如何与Blaz Server结合 一、介绍 最近工作中有Unity与Blaz Server结合的需求,在网上找了一圈,发现这方面的资料比较少,特此写下这篇记录一下自己的实现过程,希望可以帮到有需要的朋友。(下方多图预警)OS Version : windows 11 Unity Version: 2021.3.23f1c1 Blaz Server : 7.0二、实现步骤 第一步 准备Unity项目 创建一个Unity 项目​ 然后得到下面的Unity项目第二步 Unity项目发布设置

ChatGPT,我的 .NET 应用该选择哪种日志框架?
2024/5/27 11:31:36

When using . 6 compare different main stream thirdparty logging packages give suggestions on which to use in certain scenarios. With . 6 there are several mainstream thirdparty logging packages available that offer advanced features integrations. Here a

Dockcer上传hub和配置国内镜像源
2024/5/27 11:31:34

Dockcer上传hub和配置国内镜像源 1.Dockcer上传hub 要将本地的Docker镜像上传到Docker镜像仓库,可以按照以下步骤操作: linux环境 1.创建用户 首先,确保你已经在Docker Hub或其他容器注册表上创建了一个账户,并且拥有上传镜像的权限。 2.登录用户 在命令行终端中登录到Docker Hub或其他容器注册表。使用docker login命令,并输入你的用户名和密码。例如: docker login3.设置hub标签 接下来,使用以下命令将本地的镜像标记为目标注册表中

关于.Net 6.0 在Linux ,Docker容器中,不安装任何依赖就生成图形验证码!!!!!!!!!!!
2024/5/27 11:31:33

在. Framewk时代,我们生成验证码大多都是用System.Drawing。 在. 6中使用也是没有问题的。 但是,System.Drawing却依赖于Windows GDI+。 为了实现跨平台,我陷入了沉思!! 微软推荐使用SkiaSharp 进行替代,所以就开始了,踩坑之旅 首先,安装SkiaSharp 编写好图形生成代码。public class VerifyCodeHelper{private static SKFont _fontprivate static object _lock =

每个.NET开发都应掌握的C#异常处理知识点
2024/5/27 11:31:32

上篇文章讲述了C#集合知识点,本文将介绍C#异常处理知识点。异常处理是.开发中至关重要的一部分,它允许开发者在程序出现错误或不正常情况时采取适当的措施,从而提高应用程序的稳定性和可靠性。本文将介绍C#异常处理知识点,异常的基本概念略过,请查看官网。 1、自定义异常 开发者可以创建自定义异常类,以便更好地处理特定于应用程序的错误情况。自定义异常类通常继承自 System.Exception,并可以自定义信息或属性来描述异常情况。案例可以查看本公众号之前的文章,如下: 详解C#自定义异常就这么简单 2、捕获不

20230919 .NET面经
2024/5/27 11:31:31

SQL IQuerable 和 IEnumerable 的主要区别?https:stackoverflow.comquestions252785whatisthedifferencebetweeniqueryabletienumerabletSo the difference between IQueryable IEnumerable is about where the filter logic is executed. One executes on the client side the ot

探索 WPF 的 ITabletManager.GetTabletCount 在 Win11 系统的底层实现
2024/5/27 11:31:30

本文将和大家介绍专为 WPF 触摸模块提供的 ITabletManager 的 GetTabletCount 方法在 Windows 11 系统的底层实现本文属于 WPF 触摸相关系列博客,偏系统底层介绍,更多触摸博客请看 WPF 触摸相关 大家都知道在 Windows 7 系统,有专门的笔和触摸服务提供触摸消息的支持。而 WPF 是从 Vista 年代就开始的框架,自然需要支持到 XP 系统。在 XP 系统里面,还没有完善的 WM_Touch 消息,同时又需要兼顾性能,最好走的是 RealTimeSty

基于channel的异步事件总线
2024/5/27 11:31:29

生成者消费者概念编程模型 通道是生成者使用者概念编程模型的实现。 在此编程模型中,生成者异步生成数据,使用者异步使用该数据。 换句话说,此模型将数据从一方移交给另一方。 尝试将通道视为任何其他常见的泛型集合类型,例如 List。 主要区别在于,此集合管理同步,并通过工厂创建选项提供各种消耗模型。 这些选项控制通道的行为,例如允许它们存储的元素数,以及达到该限制时会发生什么情况,或者通道是由多个生成者还是多个使用者同时访问 channel简介 channel提供了用于在生成者和使用者之间以异步方式传递数据的

【C#】【Equals和ReferenceEquals】关于对象和值的问题
2024/5/27 11:31:29

在学习C#中的记录类型时,对出现的Equals和ReferenceEquals得到的不同结果表示不理解,随即进行相关资料查找。 值类型 == : 比较两者的“内容”是否相同,即“值”是否一样Equals:比较两者的“内容”是否相同,即“值”是否一样ReferenceEquals:返回false,因为会对值类型进行装箱再进行比较 引用类型 == : 比较的是引用变量指向的对象在堆中的存储地址是否一样Equals: 比较的是引用变量指向的对象在堆中的存储地址是否一样ReferenceEquals: 比

在C#中如何自定义配置上周和本周起始日来查询业务数据?
2024/5/27 11:31:28

作者:西瓜程序猿 主页传送门:https:www.cnblogs.comkimiliucn前言 在做某个报表管理功能时,有一个需求:需要根据自定义配置的[周起始日]来统计上周、本周的订单数据。在C#中并没有封装的方法根据我们需要来直接获取上一周某天到某天、本周某天到某天,所以需要我们自己封装方法来实现(我们也可以按照这个思路使用其他语言来实现)。一、需求与思路 需求是这样的,我们需要根据自定义配置的[周起始日]来统计上周、本周的订单数据,具体看下文介绍。 1.1需求介绍 举个例子:假设今天是【2023年9

使用任务计划开机启动ASP.NET Core应用程序
2024/5/27 11:31:26

ASP. Ce应用程序现在是一个控制台应用程序,在Windows上直接双击启动,但如果想让开发完成的ASP. Ce应用程序开机启动,可以将ASP. Ce应用程序修改成Windows服务运行,但这需要额外添加代码,也可以使用IIS来托管ASP. Ce应用程序,但可能需要安装一些支持IIS的组件,第三个方式就是用Windows任务计划来设置开机启动。 但是,当一个ASP. Ce应用程序直接使用Windows任务计划启动的时候,ASP. Ce应用程序无法正确读取到应用程序的配置文件从而导致程序运行出错,问题的原

基于百度AI实现文字和图像敏感内容审核
2024/5/27 11:31:26

前言 百度AI是指百度公司的人工智能技术全称。它采用深度学习技术,包括自然语言处理、语音识别、计算机视觉、知识图谱等,可应用于各个领域如互联网、医疗、金融、教育、汽车、物流等。百度AI的发展将帮助人类更好地理解世界和提高生活品质,接下来就通过一个小案例演示实现百度AI在文字和图像敏感审核应用。 项目准备 1.注册并登录百度智能云账号 官方地址:https:cloud.baidu.com2.完成个人或企业认证3.进入控制台总览4创建应用,申请BaiduAI官方的授权KEY5.应用列表项目搭建与配置 1.创建

【解惑】孜孜不倦,用足球赛程详解c#中的yield return用法
2024/5/27 11:31:25

在一个知名企业赞助的足球联赛中,有256支球队参赛。为了确保比赛的顺利进行,企业指派了小悦负责熬夜加班制定每一个球队的赛程。尽管她对足球的了解并不多,但是她对待工作的认真态度却让人钦佩。 在小悦的努力下,她顺利完成了第一轮、第二轮和第三轮的比赛安排。然而,在大赛开始前的模拟比赛中,她发现了一个严重的问题:由于参赛球队过多,人为的安排总会导致一些参赛球队被遗漏了比赛。这让她十分焦虑,因为如果不能尽快解决这个问题,联赛的公平性和竞争性将受到严重影响。 为了解决这个问题,小悦开始了她的电话咨询之旅。她先是联系了

.net core swagger分组与分组隐藏
2024/5/27 11:31:25

swagger接口一多,还是需要分个组比较妥当,以图文方式看更直观 定义分组添加分组看板展示 两个分组 我要对v1组进行隐藏,首先先了解一下 ApplicationModel ApplicationModel描述了应用中的各种对象和行为,包含Application、Controller、Action、Parameter、Router、Page、Property、Filter等等,而Asp. Ce框架本身内置一套规则用来处理这些模型,同时也提供了接口给我们自定义约定来扩展模型以实现更符合需要的应用。Mo

深入理解WPF中MVVM的设计思想
2024/5/27 11:31:24

近些年来,随着WPF在生产,制造,工业控制等领域应用越来越广发,很多企业对WPF开发的需求也逐渐增多,使得很多人看到潜在机会,不断从Web,WinFm开发转向了WPF开发,但是WPF开发也有很多新的概念及设计思想,如:数据驱动,数据绑定,依赖属性,命令,控件模板,数据模板,MVVM等,与传统WinFm,ASP. WebFm开发,有很大的差异,今天就以一个简单的小例子,简述WPF开发中MVVM设计思想及应用。 为什么要用MVVM 传统的WinFm开发,一般采用事件驱动,即用户点击事件,触发对应的事件,

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
2024/5/27 11:31:23

在我们展示一些参考信息的时候,有所会用树形列表来展示结构信息,如对于有父子关系的多层级部门机构,以及一些常用如字典大类节点,也都可以利用树形列表的方式进行展示,本篇随笔介绍基于WPF的方式,使用TreeView来洗实现结构信息的展示,以及对它的菜单进行的设置、过滤查询等功能的实现逻辑。 1、TreeView树形列表的展示 我们前面随笔介绍到的用户信息的展示,左侧就是一个树形的类表,通过展示多层级的部门机构信息,可以快速的查找对应部门的用户信息,如下界面所示。我们来看看界面中树形列表部分的Xaml代码如下所

【NET 7.0、OpenGL ES】使用Silk.NET渲染MMD,并实时进行物理模拟。
2024/5/27 11:31:21

有关mmd播放器,网上也有许多非常漂亮的实现,如 pmxedit、saba、blender_mmd_tools等等。。 首先我想先介绍下我参考实现的仓库: sselecirPyMCoocoo3D: Experimental MMD renderer using DX12 DXR. (github.com),这是sselecirPyM大神使用 6.0和DX12实现的mmd渲染器,支持自定义渲染管线、光照等,感兴趣的小伙伴可以在b站找他的视频,搜名字就好。 benikabochasaba: OpenGL V

2.简单的搭建后端,一步一步从基础开始(2023-9-20优化更新第一次)
2024/5/27 11:31:21

上传Git的忽略文件下载 千万不能忘记配置忽略文件,不然可能会搞得你一个项目10多个G,很烦人先梳理下我们需要新建的项目如下。接口层一般I(i)开头,实现层不需要。后面还会增加扩展类或者其他的。 API程序层:FastEasyAPI 服务接口层:FastEasy.IService 服务实现层:FastEasy.Service 仓储接口层:FastEasy.IReposity 仓储实现层:FastEasy.Reposity 实体层:FastEasy.Model 仓储模式的介绍很多大佬都有博客可以了解,我不会

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(4) -- 实现DataGrid数据的导入和导出操作
2024/5/27 11:31:19

在我们设计软件的很多地方,都看到需要对表格数据进行导入和导出的操作,主要是方便客户进行快速的数据处理和分享的功能,本篇随笔介绍基于WPF实现DataGrid数据的导入和导出操作。 1、系统界面设计 在我们实现数据的导入导出功能之前,我们在主界面需要提供给客户相关的操作按钮,如下界面所示,在列表的顶端提供导入Excel、导出PDF、导出Excel。由于这些操作功能基本上在各个页面模块,可能都会用到,因此尽可能的抽象到基类,以及提供通用的处理操作,实在有差异的,也可以通过一些属性或者事件方法的覆盖方式来实现即

记一次 .NET 某电力系统 内存暴涨分析
2024/5/27 11:31:17

一:背景 1. 讲故事 前些天有位朋友找到我,说他生产上的程序有内存暴涨情况,让我帮忙看下怎么回事,最简单粗暴的方法就是让朋友在内存暴涨的时候抓一个dump下来,看一看大概就知道咋回事了。 二:Windbg 分析 1. 到底是谁吃了内存 这个问题说的再多也不为过,一定要看清楚这个程序是如何个性化发展的,可以使用 !address summary 命令。0:000 !address summary Usage Summary RgnCount Total Size %ofBusy %ofTotal F

plc与组态智能化住宅防盗
2024/5/27 11:31:17

摘要:本智能化住宅防盗报警系统通过PLC以及组态监控实现了多种功能。系统可以自动控制和手动控制,在家人离开后启动,在到达家后停止。当家里没有人时,系统会模拟有人居住的情况,通过设置灯光变换和排气扇间断工作来制造有人的情况。晚上通过设置灯光的变化来模拟生活的场景,白天的时候关闭灯光,晚上的时候打开卧室的灯光,客厅的灯光关闭。家里的排气扇和灯光也可以通过触摸屏来开启。为了防止入室盗窃,在卧室和客厅设置红外传感器来进行报警。在每个窗户设置距离传感器,当系统启动后,有人靠近窗户时,会发出警报。通过以上功能的实现,

dotnet 推荐一个使用 Json 直接路由通讯的 IPC 库
2024/5/27 11:31:15

本文将和大家推荐一个我所在团队开源的本机多进程通讯 IPC 库,此 IPC 支持使用 JSON 格式进行直接路由通讯,具有使用方便,稳定性高,性能好的优点这是我所在的团队在 GitHub 上使用最友好的 MIT 协议完全开源的项目:https:github.comdotcampusdotCampus.Ipc 这个开源项目开源的是一个 IPC 库,而本文将要介绍的是这个 IPC 库其中的一个功能:使用 Json 格式进行直接路由通讯 接下来我将一步步告诉大家如何使用这个功能实现本机多进程通讯 按照 dot

基于 ActionFilters 的限流库DotNetRateLimiter使用
2024/5/27 11:31:14

前言 在构建API项目时,有时出于安全考虑,防止访问用户恶意攻击,希望限制此用户ip地址的请求次数,减轻拒绝服务攻击可能性,也称作限流。接下来,我们就来学习开源库DotRateLimiter 如何轻松实现限流。 项目使用配置 安装Nuget包 在新建立的WebAPI项目中,通过Nuget包管理器安装DotRateLimiter,安装命令:NuGet\InstallPackage DotRateLimiter Version 1.0.7项目服务注入 using Dot.RateLimitervar buil