随笔分类 -  C#

上一页 1 2 3 4 5 6 7 8 9 10 ··· 25 下一页

C#获取枚举描述的值
摘要:首先定义枚举 工具类如下,通过扩展方法的方式实现: public static string GetDescription(this Enum value) { Type enumType = value.GetType(); // 获取枚举常数名称。 string name = Enum.GetN 阅读全文

posted @ 2023-06-08 16:50 jack_Meng 阅读(651) 评论(0) 推荐(0) 编辑

使用c#实现23种设计模式
摘要:使用c#实现23种常见的设计模式 设计模式通常分为三个主要类别: 创建型模式 结构型模式 行为型模式。 这些模式是用于解决常见的对象导向设计问题的最佳实践。 以下是23种常见的设计模式并且提供c#代码案例: 创建型模式: 1. 单例模式(Singleton) public sealed class 阅读全文

posted @ 2023-06-08 16:47 jack_Meng 阅读(178) 评论(0) 推荐(0) 编辑

C# 中的yield return机制和原理
摘要:前言# 当我们编写 C# 代码时,经常需要处理大量的数据集合。在传统的方式中,我们往往需要先将整个数据集合加载到内存中,然后再进行操作。但是如果数据集合非常大,这种方式就会导致内存占用过高,甚至可能导致程序崩溃。 C# 中的yield return机制可以帮助我们解决这个问题。通过使用yield r 阅读全文

posted @ 2023-06-08 16:04 jack_Meng 阅读(682) 评论(2) 推荐(3) 编辑

如何自动转发接收的请求报头?
摘要:了解OpenTelemetry的朋友应该知道,为了将率属于同一个请求的多个操作(Span)串起来,上游应用会生成一个唯一的TraceId。在进行跨应用的Web调用时,这个TraceId和代表跟踪操作标识的SpanID一并发给目标应用,W3C还专门指定了一份名为Trace Context的标准,该标准 阅读全文

posted @ 2023-06-08 15:30 jack_Meng 阅读(15) 评论(0) 推荐(0) 编辑

如何兼顾性能+实时性处理缓冲数据?
摘要:我们经常会遇到这样的数据处理应用场景:我们利用一个组件实时收集外部交付给它的数据,并由它转发给一个外部处理程序进行处理。考虑到性能,它会将数据存储在本地缓冲区,等累积到指定的数量后打包发送;考虑到实时性,数据不能在缓冲区存太长的时间,必须设置一个延时时间,一旦超过这个时间,缓冲的数据必须立即发出去。 阅读全文

posted @ 2023-06-08 15:28 jack_Meng 阅读(15) 评论(0) 推荐(0) 编辑

C#用Expression技术 -- 系列文章
摘要:当前标签:表达式树 基于Expression Lambda表达式树的通用复杂动态查询构建器——《剧透一下》 基于Expression Lambda表达式树的通用复杂动态查询构建器——《原型篇一》[已开源] 基于Expression Lambda表达式树的通用复杂动态查询构建器——《构思篇二》已开源  阅读全文

posted @ 2023-06-01 14:09 jack_Meng 阅读(16) 评论(0) 推荐(0) 编辑

让Task在非线程池线程中执行?
摘要:Task承载的操作需要被调度才能被执行,由于.NET默认采用基于线程池的调度器,所以Task默认在线程池线程中执行。但是有的操作并不适合使用线程池,比如我们在一个ASP.NET Core应用中承载了一些需要长时间执行的后台操作,由于线程池被用来处理HTTP请求,如果这些后台操作也使用线程池来调度,就 阅读全文

posted @ 2023-05-29 11:21 jack_Meng 阅读(17) 评论(0) 推荐(0) 编辑

通过源码深究依赖注入(DI)原理
摘要:依赖注入 (DI) 是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。 Singleton服务为什么不能依赖Scoped服务? 多个构造函数的选择机制? 源码是如何识别循环依赖的? 虽然我们可 阅读全文

posted @ 2023-05-18 16:35 jack_Meng 阅读(68) 评论(0) 推荐(0) 编辑

概述 .NET ThreadPool 实现
摘要:基本调度单元 IThreadPoolWorkItem 实现类的实例。 Task 全局队列 本地队列 偷窃机制 线程注入实验 .NET 5 实验一 默认线程池配置 .NET 5 实验二 调整 ThreadPool 设置 .NET 5 实验三 tcs.Task.Wait() 改为 Thread.Slee 阅读全文

posted @ 2023-05-18 16:15 jack_Meng 阅读(86) 评论(0) 推荐(0) 编辑

c#构建具有用户认证与管理的socks5代理服务端
摘要:Socks 协议是一种代理 (Proxy) 协议, 例如我们所熟知的 Shdowsocks 便是 Socks 协议的一个典型应用程序, Socks 协议有多个版本, 目前最新的版本为 5, 其协议标准文档为 RFC 1928。 我们一起来使用.net 7 构建一个支持用户管理的高性能socks5代理 阅读全文

posted @ 2023-05-18 15:09 jack_Meng 阅读(132) 评论(0) 推荐(0) 编辑

C#异步有多少种实现方式?
摘要:思维导航 前言 .NET异步编程模式 C#异步有四种实现方式 参考文章 前言 微信群里的一个提问引发的这个问题,有同学问:C#异步有多少种实现方式?想要知道C#异步有多少种实现方式,首先我们要知道.NET提供的执行异步操作的三种模式,然后再去了解C#异步实现的方式。 .NET异步编程模式 .NET 阅读全文

posted @ 2023-05-15 13:51 jack_Meng 阅读(96) 评论(0) 推荐(0) 编辑

VS2019使用C语言进行websocket编程
摘要:一直在写C#代码好多年不写C语言代码了,记录一下之前某个项目里用C写的一个websocket服务,用C的优势是写的东西体积小性能高,但是写业务的话还得用C#、Java之类的语言,不然会折腾死人。。。 用Visual Studio新建一个C++(因为不能直接建C语言项目)项目,我演示就创建一个控制台项 阅读全文

posted @ 2023-04-10 09:28 jack_Meng 阅读(618) 评论(0) 推荐(0) 编辑

LRU缓存替换策略及C#实现
摘要:目录 LRU缓存替换策略 核心思想 不适用场景 算法基本实现 算法优化 进一步优化 Benchmark LRU缓存替换策略 缓存是一种非常常见的设计,通过将数据缓存到访问速度更快的存储设备中,来提高数据的访问速度,如内存、CPU缓存、硬盘缓存等。 但与缓存的高速相对的是,缓存的成本较高,因此容量往往 阅读全文

posted @ 2023-04-05 22:20 jack_Meng 阅读(36) 评论(0) 推荐(0) 编辑

一个强大、支持100多种格式.Net图片操作库
摘要:出处:https://www.cnblogs.com/chingho/p/17052408.html 阅读全文

posted @ 2023-04-04 17:02 jack_Meng 阅读(52) 评论(0) 推荐(0) 编辑

图片压缩后,依然很大的解决方案
摘要:昨天碰到一个很奇怪的事情,在最近的一个项目有这样的一个需求,把上传的图片进行压缩,避免因图片过大而影响浏览速度。 代码也很简单三两句就可以实现了,但发现压缩后的图片,虽然有变小,但还不是很明显。 代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 public void CreateTh 阅读全文

posted @ 2023-03-17 14:30 jack_Meng 阅读(434) 评论(0) 推荐(0) 编辑

一个.Net Core开源缓存中间件,简单、方便使用缓存
摘要:上次给大家推荐过一个缓存中间件《一个C#开发的非常实用的缓存中间件》,今天再给大家推荐一个缓存中间件,两者功能差不多,都是提供统一接口、多级缓存、分布式缓存、支持多种Provider等。 项目简介 这是一个基于.Net Core开发的缓存中间件,它支持各种缓存并提供了很多高级功能。它的主要目标是让开 阅读全文

posted @ 2023-03-17 14:05 jack_Meng 阅读(46) 评论(0) 推荐(0) 编辑

解读C#编程中最容易忽略7种编写习惯!
摘要:编程时犯错是必然的,我们来解读一下编程中最容出现的错误 1、拼接字符串 在C#编程中,字符串类型的处理是比较容易出错的地方,在.NET Framework中,字符串是一个不可变的类型,当一个字符串被修改后,总是创建一个新的副本,不会改变源字符串,大多数开发人员总是喜欢使用下面这样的方法格式化字符串: 阅读全文

posted @ 2023-03-06 21:41 jack_Meng 阅读(60) 评论(0) 推荐(0) 编辑

用 Visual Studio 升级 .NET 项目
摘要:现在,你已可以使用 Visual Studio 将所有 .NET 应用程序升级到最新版本的 .NET!这一功能可以从 Visual Studio 扩展包中获取,它会升级你的 .NET Framework 或 .NET Core 网页和桌面应用程序。一些项目类型仍正在开发中并将在不久的未来推出,请参阅 阅读全文

posted @ 2023-02-28 14:39 jack_Meng 阅读(925) 评论(0) 推荐(0) 编辑

依赖注入之单一接口多个实现
摘要:前言 最近又在项目中碰到需要将原本单实现的接口改造成多个实现的场景,这里记录一下常见的几种改法。 假设已经存在如下接口ICustomService和其实现CustomService,由于只有一种实现,注入和使用非常容易。 public interface ICustomService { void 阅读全文

posted @ 2023-02-27 10:16 jack_Meng 阅读(48) 评论(0) 推荐(0) 编辑

IL方式拦截类库--Harmony类库
摘要:大家好,我是沙漠尽头的狼。 本文先抛出以下问题,请在文中寻找答案,可在评论区回答: 什么是API拦截? 一个方法被很多地方调用,怎么在不修改这个方法源码情况下,记录这个方法调用的前后时间? 同2,不修改源码的情况下,怎么对方法的参数进行校正(篡改)? 同3,不修改源码的情况下,怎么对方法的返回值进行 阅读全文

posted @ 2023-02-21 15:57 jack_Meng 阅读(592) 评论(0) 推荐(1) 编辑

上一页 1 2 3 4 5 6 7 8 9 10 ··· 25 下一页

导航