本篇定位这是 C# 反射系列的第一篇,我们从最基础的概念开始。读完你会理解: 什么是反射,为什么需要反射 Type 类的核心作用 如何获取类型信息 Assembly 和 Module 的关系 反射的基本用途 1. 什么是反射反射...
C# 反射由浅入深 (2) — 动态调用
本篇定位这是 C# 反射系列的第二篇,我们学习如何通过反射动态调用方法和访问属性。读完你会理解: 如何通过反射创建实例 如何动态调用方法 如何动态读写属性和字段 如何处理参数和返回值 反射调用的性能特点 1. 创建实例使用 Ac...
C# 反射由浅入深 (3) — 特性(Attributes)
本篇定位这是 C# 反射系列的第三篇,我们学习**特性(Attributes)**的定义和使用。读完你会理解: 什么是特性,为什么需要特性 如何定义自定义特性 如何通过反射获取特性 特性的应用场景 实战例子:数据验证框架 1. ...
C# 反射由浅入深 (4) — 泛型反射
本篇定位这是 C# 反射系列的第四篇,我们学习如何通过反射处理泛型类型。读完你会理解: 泛型类型和非泛型类型的区别 如何获取泛型参数 如何处理泛型方法 如何检查泛型约束 实战例子:泛型容器序列化 1. 泛型类型基础开放泛型类型 ...
C# 反射由浅入深 (5) — 性能优化与表达式树
本篇定位这是 C# 反射系列的第五篇,我们学习如何通过表达式树优化反射性能。读完你会理解: 反射的性能瓶颈在哪里 什么是表达式树 如何使用表达式树替代反射 如何缓存编译的委托 实战例子:高性能属性访问器 1. 反射的性能问题性能...
C# 反射由浅入深 (6) — 实战应用
本篇定位这是 C# 反射系列的第六篇,我们学习如何在真实项目中应用反射。读完你会理解: 如何实现简单的序列化框架 如何实现 ORM 框架基础 如何实现依赖注入容器 如何实现插件系统 综合案例:完整的数据访问层 1. 序列化框架实...
C# 高级同步 - AsyncLock、SemaphoreSlim 与同步最佳实践
概述除了基础的 lock 和 Monitor,.NET 还提供专为异步场景设计的同步原语,以及一些高级模式。 SemaphoreSlim(异步等待)SemaphoreSlim 支持异步等待,是进程内异步限流的首选。 基础用法12345...
C# 异步编程 - async await 详解
概述async/await 是 C# 5.0 引入的异步编程模型,让异步代码看起来和同步代码相似,大幅简化异步编程。 基础概念async 关键字标记方法为异步方法,允许使用 await。 123456789101112131...
C# 异步编程模式 - EAP、APM 与 TAP
概述.NET 历史上共有三种异步编程模式: APM (Asynchronous Programming Model) - .NET 1.0,基于 BeginXXX/EndXXX EAP (Event-based Async...
C# 任务取消 - CancellationToken 完全指南
概述CancellationToken 是 .NET 中标准的协作式取消机制。它允许一个线程向另一个线程发出取消信号,被取消的任务可以优雅地响应并清理资源。 基础使用CancellationTokenSource 与 Token123...