本文告诉大家如何使用OpenXML解析PPT的图表,以面积图为入门例子告诉大家OpenXML的存储在PPT里面,有强大的图表功能,可以联动Excel展示数据。在PPT里面的图表和Excel的图表稍微有一些差别,本文只聊PPT的图表如下图是本文将作为例子的图表对应的数据如图如上图可以看到在PPT里面的图表是可以使用Excel的数据,将Excel文件内嵌到PPT里面。但这不代表要解析图表的数据就一定需要先了解Excel的内容,本文将绕过对Excel的任何读取,通过PPT里面的内容拿到图表的数据图表的组成开始之前,还请先让我告诉大家一个图表元素包含的基础组件部分,也就是图表元素由哪些部分组成横坐标轴
Net内置内存缓存asp.net中是有缓存的实现:HttpContext.Cache,缓存的数据是放到Web服务器的进程内存里。在控制台、WinForm、子线程、SignalR等不支持HttpContext的地方还可以使用MemoryCache.Default(System.Runtime.Caching这个程序集中),HttpContext.Cache其实就是对MemoryCache的封装。//写入:MemoryCache.Default.Add("age",666,DateTimeOffset.Now.AddMinutes(1));//读取:if(MemoryCache.Default.C
Net内置内存缓存asp.net中是有缓存的实现:HttpContext.Cache,缓存的数据是放到Web服务器的进程内存里。在控制台、WinForm、子线程、SignalR等不支持HttpContext的地方还可以使用MemoryCache.Default(System.Runtime.Caching这个程序集中),HttpContext.Cache其实就是对MemoryCache的封装。//写入:MemoryCache.Default.Add("age",666,DateTimeOffset.Now.AddMinutes(1));//读取:if(MemoryCache.Default.C
本文来告诉大家在dotnet6的HttpClientHandler和SocketsHttpHandler两个类型有什么不同在创建HttpClient时,可以在HttpClient的构造函数传入HttpMessageHandler类型的参数,此参数将执行实际的逻辑。其中常用的传入参数类型就是HttpClientHandler和SocketsHttpHandler类型那这两个类型有什么差别呢?根据官方文档可以了解到,从.NETCore2.1开始,默认的HttpClient底层的网络通讯实现就是靠System.Net.Http.SocketsHttpHandler实现的,替代了原先的HttpClie
本文来告诉大家在dotnet6的HttpClientHandler和SocketsHttpHandler两个类型有什么不同在创建HttpClient时,可以在HttpClient的构造函数传入HttpMessageHandler类型的参数,此参数将执行实际的逻辑。其中常用的传入参数类型就是HttpClientHandler和SocketsHttpHandler类型那这两个类型有什么差别呢?根据官方文档可以了解到,从.NETCore2.1开始,默认的HttpClient底层的网络通讯实现就是靠System.Net.Http.SocketsHttpHandler实现的,替代了原先的HttpClie
本文告诉大家如何简单修复在Linux上使用SkiaSharp提示找不到libSkiaSharp库我的应用在Windows上跑的好好的,放在Linux上一运行就炸掉了,异常内容如下Unhandledexception.System.TypeInitializationException:Thetypeinitializerfor'SkiaSharp.SKColorSpace'threwanexception.--->System.DllNotFoundException:Unabletoloadsharedlibrary'libSkiaSharp'oroneofitsdependencies.I
本文告诉大家如何简单修复在Linux上使用SkiaSharp提示找不到libSkiaSharp库我的应用在Windows上跑的好好的,放在Linux上一运行就炸掉了,异常内容如下Unhandledexception.System.TypeInitializationException:Thetypeinitializerfor'SkiaSharp.SKColorSpace'threwanexception.--->System.DllNotFoundException:Unabletoloadsharedlibrary'libSkiaSharp'oroneofitsdependencies.I
本文将告诉大家在dotnet6新加入的System.Runtime.DependentHandle的类型的使用方法,通过DependentHandle可以实现将某个对象的引用生命周期和另一个对象关联起来如DependentHandle结构体的构造函数,要传入两个对象作为参数,这两个对象参数分别是target和dependent参数对象,表示的意义是将这两个对象通过DependentHandle结构体建立关联。让target对象关联上dependent对象的生命周期,在dependent对象没有被释放之前,不会先释放target对象。功能上和ConditionalWeakTable差不多,只是D
本文将告诉大家在dotnet6新加入的System.Runtime.DependentHandle的类型的使用方法,通过DependentHandle可以实现将某个对象的引用生命周期和另一个对象关联起来如DependentHandle结构体的构造函数,要传入两个对象作为参数,这两个对象参数分别是target和dependent参数对象,表示的意义是将这两个对象通过DependentHandle结构体建立关联。让target对象关联上dependent对象的生命周期,在dependent对象没有被释放之前,不会先释放target对象。功能上和ConditionalWeakTable差不多,只是D
本文来安利大家Obfuscar这个好用的基于MIT协议开源的混淆工具。这是一个非常老牌的混淆工具,从2014年就对外分发,如今已有累计495.5K的nuget下载量。而且此工具也在不断持续迭代更新,完全支持dotnet6版本,对WPF和WinForms等等的支持也是非常好,支持多个不同混淆方式和等级的配置,支持混淆之后生成符号文件。本文将来告诉大家如何使用此混淆工具,以及此工具能达成的效果和此工具混淆的原理开源此工具是由LexLi主导开发的,在GitHub上使用MIT最友好协议开源,开源地址是https://github.com/obfuscar/obfuscar使用方法此工具的使用方式有多个