.NET外挂系列:4. harmony 中补丁参数的有趣玩法(上) - 一线码农

💡 原文中文,约4500字,阅读约需11分钟。
📝

内容提要

本文介绍了Harmony注入点的几种参数及其应用,如__instance、__result和__state等。通过示例代码,展示了如何利用这些参数进行线程管理和执行时间测量,从而加深对Harmony的理解与应用。

🎯

关键要点

  • 本文介绍了Harmony注入点的几种参数及其应用。
  • __instance参数用于访问非静态方法的实例,类似于this。
  • __result参数用于获取或修改返回值,修改时需使用ref。
  • __state参数用于在前缀和后缀间传递自定义数据。
  • 通过__instance参数,可以将新线程设置为后台线程,避免阻塞程序退出。
  • 使用__state参数可以在Prefix和Postfix之间传递临时变量,简化代码。
  • __originalMethod参数用于获取当前patch所对应的原方法,帮助识别和过滤。
  • 灵活运用这些参数可以提高对Harmony的理解与应用,解决.NET程序中的问题。

延伸问答

Harmony中的__instance参数有什么作用?

__instance参数用于访问非静态方法的实例,类似于this,可以用来将新线程设置为后台线程,避免阻塞程序退出。

__result参数如何使用?

__result参数用于获取或修改方法的返回值,若要修改返回值,需要使用ref关键字。

__state参数在Harmony中有什么用途?

__state参数用于在前缀和后缀之间传递自定义数据,可以简化代码并传递临时变量。

如何使用Harmony测量线程的执行时间?

可以在Prefix中启动Stopwatch并在Postfix中停止它,通过__state参数传递Stopwatch实例来记录执行时间。

如何获取当前patch对应的原方法?

可以使用__originalMethod参数获取当前patch所对应的原方法,帮助识别和过滤。

使用Harmony时如何避免线程阻塞?

通过将__instance参数设置为后台线程,可以避免新线程阻塞程序的退出。

➡️

继续阅读