看啥推荐读物
专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
今天看啥  ›  专栏  ›  dotNET跨平台

动态IL织入框架Harmony简单入手

dotNET跨平台  · 公众号  ·  · 2020-02-21 07:30
Harmony是一个开放源代码库,旨在在运行时替换、修饰或修改任何现有C#方法。它的主要用在用Mono语言编写的游戏和插件,但是该技术可以与任何.NET版本一起使用。它还照顾对同一方法的多次更改(它们累积而不是覆盖)。它为每个原始方法创建DynamicMethod方法,并向其织入代码,该代码在开始和结束时调用自定义方法。它还允许您编写过滤器来处理原始的IL代码,从而可以对原始方法进行更详细的操作。文档可以在这里找到。最新2.0版本终于支持.net core.Harmony支持手动(Patch)和自动(PatchAll)织入织入位置可以是执行前(Prefix)、执行后(Postfix)和终结嚣(Finalizer),也可以更详细的手动修改IL(Transpiler)支持构造函数、Getter/Setter、虚/非虚方法、静态方法手动模式c ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照