• 2024-04-15.NET Emit 入门教程:第六部分:IL 指令:8:详解 ILGenerator 指令方法:类型转换指令
    前言:经过前面几篇的学习,我们了解到指令的大概分类,如:参数加载指令,该加载指令以 Ld开头,将参数加载到栈中,以便于后续执行操作命令。参数存储指令,其指令以St开头,将栈中的数据,存储到指定的变量中,以方便后续使用。创建实例指令,其指令以New开头,用于在运行时动态生成并初始化对
  • 2024-04-07.NET Emit 入门教程:第六部分:IL 指令:5:详解 ILGenerator 指令方法:创建实例指令
    前言:上上篇介绍了 IL 指令的分类以及参数加载指令,该加载指令以 Ld开头,将参数加载到栈中,以便于后续执行操作命令。上一篇介绍参数存储指令,其指令以St开头,将栈中的数据,存储到指定的变量中,以方便后续使用。本篇将介绍创建实例指令,其指令以New开头,用于在运行时动态生成并初
  • 2023-12-28【类型转换】使用c#实现简易的类型转换(Emit,Expression,反射)
    引言哈喽。大家好,好久不见,最近遇到了一个场景,就是在FrameWork的asp.netmvc中,有个系统里面使用的是EntityFramework的框架,在这个框架里,提供了一个SqlQuery的方法,这个方法很好用啊,以至于在EFCORE8里面又添加了回来,不过不知道性能怎么样,我遇到的场景是通过SqlQuery查询的时
  • 2023-08-18让SignalR客户端回调支持强类型
    几天写一个小程序的时候用到了SignalR,发现现在SingalRServer支持强类型了,也就是说,我们可以定义一个客户端的通知契约:    public interface IClient    {        void SayHello(string message);    }然后Hub就可以这么写了:    public class Me
  • 2023-08-08WPF c# 使用Emit自动创建通知类
    参考概念参考自https://www.codewrecks.com/post/old/2008/08/implement-inotifypropertychanged-with-dynamic-code-generation/和DevExpress的MVVM框架Runtime-generatedPOCOViewModels代码实现来自ChatGPT抽卡原始类publicclassClass1{publicvirtualint
  • 2023-06-25使用DynamicMethod实现抽象方法
    本文介绍使用DynamicMethod实现抽象方法1.创建抽象类与抽象方法特别注意抽象类不要被其他类所包含,否则IL编译会出错publicabstractclassHelloWrold{publicabstractvoidSayHelloWorld();}2.定义子类varparentType=typeof(HelloWrold);varnewClass=Assem
  • 2023-02-17C# Expression
    Expression简介表达式树又称为“表达式目录树”,以数据形式表示语言级代码,它是一种抽象语法树或者说是一种数据结构。 简述一个Expression表达式  1是一个节点,是
  • 2022-12-05C#动态创建和动态使用程序集、类、方法、字段等
    首先我们需要了解每个动态类型在.net中都是用什么类型来表示的。程序集:System.Reflection.Emit.AssemblyBuilder(定义并表示动态程序集)构造函数:System.Reflection.Emit
  • 2022-11-30Dalvik opcodes
    DalvikopcodesAuthor: ​​GaborPaller​​VxvaluesinthetabledenoteaDalvikregister.Dependingontheinstruction,16,256or64kregisterscanbeacces
  • 2022-11-22使用MSIL采用Emit方式实现C#的代码生成与注入常用代码
    本文主要使用微软提供的一套C#的API函数,通过这些API函数,可以对已经编译过的.Net体系生成的EXE,DLL文件进行修改,而不是修改源码编译的方式,来完成新功能的加入、或者原有功
  • 2022-10-29使用delegate给方法传递参数,或返回delegate对象
    第一次在博客园写文章。最近遇到一个问题,用到了多线程,以前用的时候线程启动时不需要传递参数,可现在需要时却被难了一把。。还是先说说delegate吧delegate是C#中的一种
  • 2022-10-19winXP immunity debugger 运行mona插件报错,解决方法
    报错内容报错内容提示如下:AttributeError:'list'objecthasnoattribute'update'找到问题所在为:File"C:\DocumentsandSettings\lrt\桌面\ImmunityDebugger-mast