Show / Hide Table of Contents

Namespace HarmonyLib

Classes

AccessTools

A helper class for reflection related functions

AccessToolsExtensions

Adds extensions to Type for a lot of AccessTools methods

Break_

Code

By adding the following using statement to your source code: using static HarmonyLib.Code; you can for example start using Ldarg_1 in you code instead of new CodeMatch(OpCodes.Ldarg_1) and then you can use array notation to add an operand and/or a name: Call[myMethodInfo] instead of new CodeMatch(OpCodes.Call, myMethodInfo)

CodeInstruction

An abstract wrapper around OpCode and their operands. Used by transpilers

CodeInstructionExtensions

Extensions for CodeInstruction

CodeInstructionsExtensions

Extensions for a sequence of CodeInstruction

CodeMatch

A CodeInstruction match

CodeMatcher

A CodeInstruction matcher

CollectionExtensions

General extensions for collections

DelegateTypeFactory

A factory to create delegate types

ExceptionBlock

An exception block

FastAccess

A helper class for fast access to getters and setters

FileLog

A file log for debugging

GeneralExtensions

General extensions for common cases

Harmony

The Harmony instance is the main entry to Harmony. After creating one with an unique identifier, it is used to patch and query the current application domain

HarmonyAfter

A Harmony annotation

HarmonyArgument

A Harmony annotation

HarmonyAttribute

The base class for all Harmony annotations (not meant to be used directly)

HarmonyBefore

A Harmony annotation

HarmonyCleanup

Specifies the Cleanup function in a patch class

HarmonyDebug

A Harmony annotation

HarmonyDelegate

Annotation to define the original method for delegate injection

HarmonyException

Under Mono, HarmonyException wraps IL compile errors with detailed information about the failure

HarmonyFinalizer

Specifies the Finalizer function in a patch class

HarmonyMethod

A wrapper around a method to use it as a patch (for example a Prefix)

HarmonyMethodExtensions

Annotation extensions

HarmonyPatch

Annotation to define your Harmony patch methods

HarmonyPatchAll

A Harmony annotation to define that all methods in a class are to be patched

HarmonyPatchCategory

Annotation to define a category for use with PatchCategory

HarmonyPostfix

Specifies the Postfix function in a patch class

HarmonyPrefix

Specifies the Prefix function in a patch class

HarmonyPrepare

Specifies the Prepare function in a patch class

HarmonyPriority

A Harmony annotation

HarmonyReversePatch

Annotation to define your standin methods for reverse patching

HarmonyTargetMethod

Specifies the TargetMethod function in a patch class

HarmonyTargetMethods

Specifies the TargetMethods function in a patch class

HarmonyTranspiler

Specifies the Transpiler function in a patch class

InnerFix

The base class for InnerPrefix and InnerPostfix

InnerMethod

Occcurances of a method that is called inside some outer method

InnerPostfix

An inner postfix that is applied inside some method call inside a method

InnerPrefix

An inner prefix that is applied inside some method call inside a method

MethodBaseExtensions

General extensions for collections

MethodInvoker

A helper class to invoke method with delegates

Patch

A serializable patch

PatchClassProcessor

A PatchClassProcessor used to turn HarmonyAttribute on a class/type into patches

Patches

A group of patches

PatchInfo

Serializable patch information

PatchProcessor

A PatchProcessor handles patches on a method/constructor

Priority

A patch priority

ReversePatcher

A reverse patcher

SymbolExtensions

A helper class to retrieve reflection info for non-private methods

Transpilers

A collection of commonly used transpilers

Traverse

A reflection helper to read and write private elements

Traverse<T>

A reflection helper to read and write private elements

Enums

ArgumentType

Specifies the type of argument

ExceptionBlockType

Exception block types

HarmonyPatchType

Specifies the type of patch

HarmonyReversePatchType

Specifies the type of reverse patch

InnerFixType

The type of an InnerFix

MethodDispatchType

Specifies the type of method call dispatching mechanics

MethodType

Specifies the type of method

Delegates

AccessTools.FieldRef<F>

A readable/assignable reference delegate to a static field

AccessTools.FieldRef<T, F>

A readable/assignable reference delegate to an instance field of a class or static field (NOT an instance field of a struct)

AccessTools.StructFieldRef<T, F>

A readable/assignable reference delegate to an instance field of a struct

FastInvokeHandler

A delegate to invoke a method

InstantiationHandler<T>

A constructor delegate type

RefResult<T>

Delegate type for "ref return" injections

In This Article
Back to top Generated by DocFX