刷新
聊一聊 .NET 的 AssemblyLoadContext 可插拔程序集

博主头像 一:背景 1. 讲故事 最近在分析一个崩溃dump时,发现祸首和AssemblyLoadContext有关,说实话这东西我也比较陌生,后来查了下大模型,它主要奔着替代 .NetFrameWork 时代的 AppDomain 的,都是用来做晚期加卸载,实现对宿主程序的可插拔,AppDomain.Cre ...

如何使用PocoEmit.Mapper替代AutoMapper

PocoEmit使用比较简单对于大部分转化是不需要手动配置 可以替代AutoMapper的大部分工作,实现精简代码,提高性能 一、获取Mapper实例 1. 获取Mapper默认实例 Default是一个静态延迟初始化的默认实例 IMapper mapper = PocoEmit.Mapper.De ...

记一次 .NET 某放射治疗光学定位软件 卡死分析

博主头像 一:背景 1. 讲故事 前段时间微信上有位非调试训练营学员找到我,说他们的医疗软件有点问题,有时候卡了一会就好了,有时候卡了很久,让我帮忙看下怎么回事,我让这位朋友在卡的时候抓一个dump给我,我分析看看。 二:卡死分析 1. 为什么会卡死 对于窗体程序的卡死,主要就是看主线程此时正在做什么,使用 ...

婶可忍叔不可忍的AutoMapper,你还用吗?

AutoMapper是让人又爱又恨的项目 爱它是因为它解决了一些问题,很多项目都有用,下载量很大,受众很广。 恨它是因为它诸多反人类的设计。 为此本人开源项目PocoEmit对标AutoMapper。 1. AutoMapper反人类设计 1.1 AutoMapper注册代码 services.Ad ...

记一次 .NET 某企业审批系统 崩溃分析

博主头像 一:背景 1. 讲故事 今年年初有位朋友在微信上找到我,说他们的系统在客户这边崩掉了,在代码中也加了全局异常处理但还是崩,不知道咋回事,让朋友在客户那边拿程序dump,拿到dump之后开始分析。 二:崩溃分析 1. 为什么会崩溃 既然是崩溃,那就用 !analyze -v 命令观察下windbg给我 ...

用代码写代码:使用Roslyn API构建语法树并应用于源生成器

博主头像 在上文构建源生成器的过程中,我们使用字符串直接插入代码。这样做固然方便快捷,但字符串需要手动格式化,且无法检测拼写错误,这对需要生成复杂结构的源生成器项目很不友好。 本文将介绍生成代码的另一种方式:使用Roslyn API构建语法树。 什么是语法树 (Syntax Tree)? 语法树是编译器用于理 ...

C# 源生成器(Source Generator)入门

博主头像 C#9 引入了一个强大的机制:源生成器(Source Generator)。通过创建源生成器,我们可以简化大量重复编写的代码,或是减少反射来获得更强的性能以及AOT支持 本文将介绍如何从零开始创建一个最简单的源生成器 创建生成器项目 创建一个SourceGeneratorDemo.Generator ...

记一次 .NET 某人力资源网 CPU爆高分析

博主头像 一:背景 1. 讲故事 前段时间微信里有一位非训练营学员找到我,说他们的系统在某些时段会cpu爆高,并伴有网络带宽的激增,不知道是什么情况,让我帮忙看下怎么回事,哈哈,说这个故障之前,我先吐槽一下,地狱不空,在社区里我一个人的力量太微弱了,这5年来我给行业内开发朋友都是全免费分析,这也让自己不堪重负 ...

记一次 .NET 某光谱检测软件 内存暴涨分析

博主头像 一:背景 1. 讲故事 训练营里的一位学员找到我,说他们的系统会出现内存暴涨的情况,看了下也不是托管堆的问题,让我协助一下到底怎么回事?既然有dump了,那就开始分析之旅吧。 二:内存暴涨分析 1. 为什么会暴涨 在分析之前还是那条原则,不要过分的相信求助者的话,否则容易被他带沟里去,毕竟人家是业余 ...

记一次 .NET 某工控PCB巡检系统 崩溃分析

博主头像 一:背景 1. 讲故事 前些天训练营里的一位学员找到我,说他们的系统出现了崩溃,自己分析了遍也没找到是什么原因,让我帮忙看下怎么回事?dump拿到手后,接下来就上windbg分析。 二:崩溃分析 1. 为什么会崩溃 打开dump之后,windbg 会自动定位崩溃点,输出如下: ........... ...

跨域处理

博主头像 跨域处理 //开放所有跨域 response.AddHeader("Access-Control-Allow-Origin", "*"); response.AddHeader("Access-Control-Allow-Credentials", "true"); response.AddHead ...

[原创]《C#高级GDI+实战:从零开发一个流程图》第09章:增加贝塞尔曲线,上、下、左、右连接点

博主头像 一、前言 前面的课程我们添加了诸多形状,但连线还只有直线这一种样式,而且也只能连接形状的中心点。我们本节课就来增加一种很常见的连线样式:贝塞尔曲线。同时也对形状增加多个不同的连接点,不再只连中心了。 相信看完的你,一定会有所收获! 本文地址:https://www.cnblogs.com/lesli ...

记一次 .NET 某汽车控制焊接软件 卡死分析

博主头像 一:背景 1. 讲故事 前些天有位朋友找到我,说他们开发的在客户工厂里的窗体程序出现了卡死情况,并且 Ctrl+C 也退不出来,自己分析了下也没找出是什么原因,后来在网络上就找到了我,让我帮忙看下怎么回事? 毕竟我在这一块是专业的。。。 哈哈,既然有dump,那就拿出来分析一下。 二:卡死分析 1. ...

创业之路需要注意的坑

博主头像 今天我想聊聊,创业需要的避坑点,这也是给我在与朋友创业过程中的一些警示。 坑1:我有一个别人没有的idea 很多人创业时自信满满,觉得“我有一个独一无二的点子”,但创业不是光有 idea 就行。还需要天时、地利、人和。 天时:市场是否成熟?客户是否已具备认知?资本是否支持? 地利:资源是否能调动?你 ...

类库,Dll,NuGet包,类与命名空间

博主头像 1.类(Class) 是什么? 类是C#语言中的一种基本结构,是对象的蓝图或模板。它定义了对象的数据(字段或属性)和行为(方法)。 为什么需要? 支持面向对象编程(OOP),其次代码组织和重用。 模拟现实世界的实体和行为。 支持继承、多态、封装等特性。 封装操作细节。 2.命名空间(Namespac ...

[原创]《C#高级GDI+实战:从零开发一个流程图》第08章:增加菱形、平行四边形、圆角矩形,文本居中显示

博主头像 一、前言 前面的课程我们已经完成了形状和连线的抽象,并独立出了画布控件,基础已经打好,下面就要添砖加瓦了。我们本节课程就来添加一些不同的形状,如:菱形、平行四边形、圆角矩形等。而且我们前面发现形状内的文本都不是居中显示的,我们也顺便优化下。 相信看完的你,一定会有所收获! 本文地址:https:// ...

<123···15>