03 2024 档案
.NET Emit 入门教程:第六部分:IL 指令:2:详解 ILGenerator 辅助方法
摘要:经过前面几大部分的学习,已经掌握了 Emit 的前因后果,今天来详细讲解 Emit 中 IL 的部分内容。如前文所讲,通过 DynamicMethod(或 MethodBuilder)可获得 ILGenerator 这个用于编写 IL 指令的类,并用它来编写 IL 指令。本篇主要讲解 ILGenerator 的介绍,以及主要的辅助方法,详细的指令方法,则拆分到下一篇介绍。
阅读全文
.NET Emit 入门教程:第六部分:IL 指令:1:概要介绍
摘要:本篇主要介绍了 IL 指令,包括IL指令的基本结构、常见指令类型和示例应用。IL 指令是构成IL代码的基本单位,通过不同指令的组合实现对数据的操作和流程控制。在学习 IL 指令时,需要理解指令的作用、操作码和操作数的含义,以及如何正确使用IL指令构建有效的IL代码。
阅读全文
.NET Emit 入门教程:第五部分:动态生成方法(MethodBuilder 与 DynamicMethod)
摘要:在本文的第五部分中,我们深入探讨了 .NET Emit 中动态生成方法的两种方式:MethodBuilder 和 DynamicMethod。通过 MethodBuilder,我们可以在运行时动态创建和定义方法,为其添加参数、自定义属性等元数据信息。而 DynamicMethod 则提供了一种更灵活的动态方法生成方式,特别适合于需要高性能的动态代码生成场景。
阅读全文
.NET Emit 入门教程:第四部分:构建类型(Type)
摘要:构建类型是动态代码生成过程中的关键一环,通过灵活运用 TypeBuilder 和相关工具,我们可以实现各种复杂类型的动态生成,为程序的灵活性和可扩展性提供有力支持。总的来说,本章节通过演示如何使用 Emit 来动态创建类型,包括定义字段、方法、属性和事件等,
帮助读者理解如何在运行时生成和操作类型信息。
阅读全文
.NET Emit 入门教程:第三部分:构建模块(Module)
摘要:嗯,构建模块,一行代码的事情,愣是让我写成了一篇教程,太难了。在这个入门教程的第三部分中,我们学习了如何使用.NET Emit 构建模块(Module)。通过创建和定义模块,我们可以更好地组织和管理我们的代码。在这个过程中,我们了解了如何使用 AssemblyBuilder 和 ModuleBuilder 来动态生成模块。通过学习构建模块的过程,我们可以更深入地理解.NET Emit 的强大功能,并且能够在运行时动态地生成和加载代码。
阅读全文
.NET Emit 入门教程:第二部分:构建动态程序集(追加构建静态程序集教程)
摘要:在本章节中,我们讨论了如何使用 C# Emit 来构建动态程序集,以获得 AssemblyBuilder 这个程序集构建器,开启构建程序集的第一步。同时我们也讨论了如何使用 C# Emit 来构建动态程序集以及程序集的持久化。同时还分享了自己的干货,如何使用 CodeDom 和 Roslyn 来构建静态程序集。通过本章节的内容,读者可以掌握如何利用 C# Emit 技术构建动态程序集和静态程序集,从而实现灵活、动态的程序设计和开发。
阅读全文
.NET Emit 入门教程:第一部分:Emit 介绍
摘要:Emit 技术是一种强大的动态生成IL代码的技术,通过使用 System.Reflection.Emit 命名空间中的类,开发人员可以在运行时创建和修改程序集、类型和方法。它为开发人员提供了更高级别的灵活性,使他们能够根据需要动态生成和执行代码。
阅读全文
CYQ.Data 操作 Json 性能测试:对比 Newtonsoft.Json
摘要:在 CYQ.Data 版本更新的这么多年,中间过程的版本都在完善各种功能。基于需要支持或兼容的代码越多,很多时候,常规思维,都把相关功能完成,就结束了。实现过程中,无法避免的会用到大量的反射、锁等对性能有所影响的逻辑代码。CYQ.Data 从V5.9 版本开始,开始大规模的优化调整代码,目前稳定在 V5.9.2.7 版本,下面看一下更新记录
阅读全文
CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis
摘要:前几天,点开自己的博客,看了一下 CYQ.Data V5系列 都有哪些文章,发现了一篇2019年写的:CYQ.Data 对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。感觉文章中有些表述存有问题,,不过不是重点。
重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的更新,有没有进步呢。为了和之前的版本进行对比,好在当年有留下代码,就直接拿当年的代码来测试一下。
阅读全文
CYQ.Data 支持 KingbaseES人大金仓数据库
摘要:1、KingBaseES 人大金仓数据库 是多数据库、多模式。2、public 为默认模式,因此,默认情况下,我们可以在 public 模式下新建表即可。总的来说,使用 CYQ.Data 框架操作 KingBaseES 数据库可以简化开发流程,提高开发效率,同时也增强了系统的稳定性和安全性
阅读全文
CYQ.Data 支持 DaMeng 达梦数据库
摘要:CYQ.Data 是一个用于操作数据库的框架,可以方便地连接和管理各种类型的数据库。在操作达梦数据库时,使用 CYQ.Data 框架可以提供以下功能和优势......总的来说,使用 CYQ.Data 框架操作达梦数据库可以简化开发流程,提高开发效率,同时也增强了系统的稳定性和安全性。
阅读全文
开源:Taurus.Idempotent 分布式幂等性锁框架,支持 .Net 和 .Net Core 双系列版本
摘要:通过引入分布式幂等性框架,可以有效处理分布式系统中的重复操作问题,确保系统稳定运行并保持数据的一致性。
阅读全文
Taurus.MVC WebMVC 入门开发教程7:部分视图和页面片段(结束篇)
摘要:通过本篇教程,我们学习了如何在 Taurus.MVC WebMVC 中使用部分视图和页面片段来提高代码的复用性和可维护性。我们了解了部分视图和页面片段的基本概念,并学习了如何创建和使用它们。
阅读全文
Taurus.MVC WebMVC 入门开发教程6:路由配置与路由映射
摘要:通过本篇教程,我们学习了如何在 Taurus.MVC WebMVC 中配置路由并将其映射到控制器和操作方法。我们学习了默认路由和自定义路由的创建方法,并了解了不同 URL 对控制器和操作方法的影响。
阅读全文