0Harmony
A factory to create delegate types
Default constructor
Creates a delegate type for a method
The method
The new delegate type
A getter delegate type
Type that getter gets field/property value from
Type of the value that getter gets
The instance get getter uses
An delegate
A setter delegate type
Type that setter sets field/property value for
Type of the value that setter sets
The instance the setter uses
The value the setter uses
An delegate
A constructor delegate type
Type that constructor creates
An delegate
A helper class for fast access to getters and setters
Creates an instantiation delegate
Type that constructor creates
The new instantiation delegate
Creates an getter delegate for a property
Type that getter reads property from
Type of the property that gets accessed
The property
The new getter delegate
Creates an getter delegate for a field
Type that getter reads field from
Type of the field that gets accessed
The field
The new getter delegate
Creates an getter delegate for a field (with a list of possible field names)
Type that getter reads field/property from
Type of the field/property that gets accessed
A list of possible field names
The new getter delegate
Creates an setter delegate
Type that setter assigns property value to
Type of the property that gets assigned
The property
The new setter delegate
Creates an setter delegate for a field
Type that setter assigns field value to
Type of the field that gets assigned
The field
The new getter delegate
A delegate to invoke a method
The instance
The method parameters
The method result
A helper class to invoke method with delegates
Creates a fast invocation handler from a method and a module
The method to invoke
The module context
The fast invocation handler
Creates a fast invocation handler from a method and a module
The method to invoke
The fast invocation handler
Creating dynamic methods
A bit-field of flags for protections
No access
Read only
Read write
Write copy
No access
Execute read
Execute read write
Execute write copy
guard
No cache
Write combine
A low level memory helper
Is current environment Windows?
True if it is Windows
Virtual protect
The address
The size
The fl new protect
[out] The lpfl old protect
Status
Unprotect a memory page
The memory address
Mark method for no inlining
The method to change
Detours a method
The original method
The replacement method
An error string
Writes a jump to memory
The memory address
Jump destination
An error string
Gets the start of a method in memory
The method
[out] Details of the exception
The method start address
Compare bytes
The memory address
The bytes to compare to
True if memory address contains the bytes
Reads a byte
The memory address
The byte
Reads an int
The memory address
The int
Reads a long
The memory address
The long
Writes a byte
The memory address
The byte
Advanced memory address
Writes some bytes
The memory address
The bytes to write
Advanced memory address
Writes an int
The memory address
The int
Advanced memory address
Writes a long
The memory address
The long
Advanced memory address
special parameter names that can be used in prefix and postfix methods
Patch function helpers
Adds a prefix
The patch info
The owner (Harmony ID)
The annotation info
Removes a prefix
The patch info
The owner (Harmony ID)
Adds a postfix
The patch info
The owner (Harmony ID)
The annotation info
Removes a postfix
The patch info
The owner (Harmony ID)
Adds a transpiler
The patch info
The owner (Harmony ID)
The annotation info
Removes a transpiler
The patch info
The owner (Harmony ID)
Adds a finalizer
The patch info
The owner (Harmony ID)
The annotation info
Removes a finalizer
The patch info
The owner (Harmony ID)
Removes a patch method
The patch info
The patch method
Gets all instructions from a method
The generator (for defining labels)
The original method
The instructions
Gets sorted patch methods
The original method
Patches to sort
The sorted patch methods
Creates new dynamic method with the latest patches and detours the original method
The original method
Information describing the patches
Harmony ID
The newly created dynamic method
Creates a patch sorter
Array of patches that will be sorted
Sorts internal PatchSortingWrapper collection and caches the results.
After first run the result is provided from the cache.
The original method
The sorted patch methods
Checks if the sorter was created with the same patch list and as a result can be reused to
get the sorted order of the patches.
List of patches to check against
true if equal
Removes one unresolved dependency from the least important patch.
Outputs all unblocked patches from the waiting list to results list
Adds patch to both results list and handled patches set
Patch to add
Wrapper used over the Patch object to allow faster dependency access and
dependency removal in case of cyclic dependencies
Create patch wrapper object used for sorting
Patch to wrap
Determines how patches sort
The other patch
integer to define sort order (-1, 0, 1)
Determines whether patches are equal
The other patch
true if equal
Hash function
A hash code
Bidirectionally registers Patches as after dependencies
List of dependencies to register
Bidirectionally registers Patches as before dependencies
List of dependencies to register
Bidirectionally removes Patch from after dependencies
Patch to remove
Bidirectionally removes Patch from before dependencies
Patch to remove
Specifies the type of method
This is a normal method
This is a getter
This is a setter
This is a constructor
This is a static constructor
Specifies the type of argument
This is a normal argument
This is a reference argument (ref)
This is an out argument (out)
This is a pointer argument (&)
Specifies the type of patch
Any patch
A prefix patch
A postfix patch
A transpiler
A finalizer
The base class for all Harmony annotations (not meant to be used directly)
The common information for all attributes
The main Harmony annotation class
An empty annotation can be used together with TargetMethod(s)
An annotation that specifies a class to patch
The declaring class
An annotation that specifies a method, property or constructor to patch
The declaring class
The argument types of the method or constructor to patch
An annotation that specifies a method, property or constructor to patch
The declaring class
The name of the method, property or constructor to patch
An annotation that specifies a method, property or constructor to patch
The declaring class
The name of the method, property or constructor to patch
An array of argument types to target overloads
An annotation that specifies a method, property or constructor to patch
The declaring class
The name of the method, property or constructor to patch
An array of argument types to target overloads
An array of extra argument subtypes (ref, out, pointer)
An annotation that specifies a method, property or constructor to patch
The declaring class
The type of entry: method, getter, setter or constructor
An annotation that specifies a method, property or constructor to patch
The declaring class
The type of entry: method, getter, setter or constructor
An array of argument types to target overloads
An annotation that specifies a method, property or constructor to patch
The declaring class
The type of entry: method, getter, setter or constructor
An array of argument types to target overloads
An array of extra argument subtypes (ref, out, pointer)
An annotation that specifies a method, property or constructor to patch
The declaring class
The name of the method, property or constructor to patch
The type of entry: method, getter, setter or constructor
An annotation that specifies a method, property or constructor to patch
The name of the method, property or constructor to patch
An annotation that specifies a method, property or constructor to patch
The name of the method, property or constructor to patch
An array of argument types to target overloads
An annotation that specifies a method, property or constructor to patch
The name of the method, property or constructor to patch
An array of argument types to target overloads
An array of extra argument subtypes (ref, out, pointer)
An annotation that specifies a method, property or constructor to patch
The name of the method, property or constructor to patch
The type of entry: method, getter, setter or constructor
An annotation that specifies a method, property or constructor to patch
The type of entry: method, getter, setter or constructor
An annotation that specifies a method, property or constructor to patch
The type of entry: method, getter, setter or constructor
An array of argument types to target overloads
An annotation that specifies a method, property or constructor to patch
The type of entry: method, getter, setter or constructor
An array of argument types to target overloads
An array of extra argument subtypes (ref, out, pointer)
An annotation that specifies a method, property or constructor to patch
An array of argument types to target overloads
An annotation that specifies a method, property or constructor to patch
An array of argument types to target overloads
An array of extra argument subtypes (ref, out, pointer)
A Harmony annotation to define that all methods in a class are to be patched
A Harmony annotation
A Harmony annotation to define patch priority
The priority
A Harmony annotation
A Harmony annotation to define that a patch comes before another patch
The harmony ID of the other patch
A Harmony annotation
A Harmony annotation to define that a patch comes after another patch
The harmony ID of the other patch
Specifies the Prepare function in a patch class
Specifies the Cleanup function in a patch class
Specifies the TargetMethod function in a patch class
Specifies the TargetMethods function in a patch class
Specifies the Prefix function in a patch class
Specifies the Postfix function in a patch class
Specifies the Transpiler function in a patch class
Specifies the Finalizer function in a patch class
A Harmony annotation
The name of the original argument
The index of the original argument
The new name of the original argument
An annotation to declare injected arguments by name
An annotation to declare injected arguments by index
Zero-based index
An annotation to declare injected arguments by renaming them
Name of the original argument
New name
An annotation to declare injected arguments by index and renaming them
Zero-based index
New name
The version.
An abstract wrapper around OpCode and their operands. Used by transpilers
The opcode
The operand
All labels defined on this instruction
All exception block boundaries defined on this instruction
Creates a new CodeInstruction with a given opcode and optional operand
The code
The operand
Create a full copy (including labels and exception blocks) of a CodeInstruction
The instruction to copy
Clones a CodeInstruction and resets its labels and exception blocks
A lightweight copy of this code instruction
Clones a CodeInstruction, resets labels and exception blocks and sets its opcode
The opcode
A copy of this CodeInstruction with a new opcode
Clones a CodeInstruction, resets labels and exception blocks and sets its operand
The opcode
A copy of this CodeInstruction with a new operand
Returns a string representation of the code instruction
A string representation of the code instruction
Exception block types
The beginning of an exception block
The beginning of a catch block
The beginning of an except filter block
The beginning of a fault block
The beginning of a finally block
The end of an exception block
An exception block
Block type
Catch type
Creates an exception block
Block type
Catch type
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
The unique identifier
Set to true before instantiating Harmony to debug Harmony
Set to false before instantiating Harmony to prevent Harmony from patching other older instances of itself
Creates a new Harmony instance
A unique identifier
A Harmony instance
Searches current assembly for Harmony annotations and uses them to create patches
Create a patch processor from an annotated class
The class
Searches an assembly for Harmony annotations and uses them to create patches
The assembly
Creates patches by manually specifying the methods
The original method
An optional prefix method wrapped in a HarmonyMethod object
An optional postfix method wrapped in a HarmonyMethod object
An optional transpiler method wrapped in a HarmonyMethod object
An optional finalizer method wrapped in a HarmonyMethod object
The dynamic method that was created to patch the original method
Unpatches methods
The optional Harmony ID to restrict unpatching to a specific instance
Unpatches a method
The original method
The patch type
The optional Harmony ID to restrict unpatching to a specific instance
Unpatches a method
The original method
The patch method to remove
Test for patches from a specific Harmony ID
The Harmony ID
True if patches for this ID exist
Gets patch information for a given original method
The original method
The patch information
Gets the methods this instance has patched
An enumeration of original methods
Gets all patched methods in the appdomain
An enumeration of original methods
Gets Harmony version for all active Harmony instances
[out] The current Harmony version
A dictionary containing assembly versions keyed by Harmony IDs
A wrapper around a method to use it as a patch (for example a Prefix)
The original method
Declaring class
Method name
Method type
Argument types
Priority
Before parameter
After parameter
Default constructor
Creates an annotation from a method
The original method
Creates an annotation from a method.
The type
The method name
The optional argument types for overloaded methods
Gets the names of all internal patch info fields
A list of field names
Merges annotations
The annotations
A merged annotation
Returns a string that represents the annotation
A string representation
Annotation extensions
Copies annotation information
from
to
Clones an annotation
The annotation to clone
A copy of the annotation
Merges annotations
The master
The detail
A new, merged copy
Gets all annotations on a class
The class
All annotations
Gets all annotations on a method
The method
All annotations
Patch serialization
Control the binding of a serialized object to a type
Specifies the assembly name of the serialized object
Specifies the type name of the serialized object
The type of the object the formatter creates a new instance of
Serializes a patch info
The patch info
A byte array
Deserialize a patch info
The byte array
A patch info
Compare function to sort patch priorities
The patch
Zero-based index
The priority
A standard sort integer (-1, 0, 1)
Serializable patch information
The prefixes
The postfixes
The transpilers
The finalizers
Default constructor
Adds a prefix
The patch
The owner (Harmony ID)
The priority
The before parameter
The after parameter
Removes a prefix
The owner or (*) for any
Adds a postfix
The patch
The owner (Harmony ID)
The priority
The before parameter
The after parameter
Removes a postfix
The owner or (*) for any
Adds a transpiler
The patch
The owner (Harmony ID)
The priority
The before parameter
The after parameter
Removes a transpiler
The owner or (*) for any
Adds a finalizer
The patch
The owner (Harmony ID)
The priority
The before parameter
The after parameter
Removes a finalizer
The owner or (*) for any
Removes a patch
The patch method
A serializable patch
Zero-based index
The owner (Harmony ID)
The priority
The before
The after
The patch method
Creates a patch
The patch
Zero-based index
The owner (Harmony ID)
The priority
The before parameter
The after parameter
Gets the patch method
The original method
The patch method
Determines whether patches are equal
The other patch
true if equal
Determines how patches sort
The other patch
integer to define sort order (-1, 0, 1)
Hash function
A hash code
A group of patches
The prefixes
The postfixes
The transpilers
The finalizers
Gets all owners (Harmony IDs) or all known patches
The patch owners
Creates a group of patches
The prefixes
The postfixes
The transpilers
The transpilers
A patch processor
Creates a patch processor
The Harmony instance
The patch class
The Harmony attributes
Creates a patch processor
The Harmony instance.
The original methods
The optional prefix.
The optional postfix.
The optional transpiler.
The optional finalizer.
Gets patch information
The original method
The patch information
Gets all patched original methods
All patched original methods
Applies the patch
A list of all created dynamic methods
Unpatches patches of a given type and/or Harmony ID
The patch type
Harmony ID or (*) for any
Unpatches the given patch
The patch
A patch priority
Patch last
Patch with very low priority
Patch with low priority
Patch with lower than normal priority
Patch with normal priority
Patch with higher than normal priority
Patch with high priority
Patch with very high priority
Patch first
A collection of commonly used transpilers
A transpiler that replaces all occurrences of a given method with another one
The instructions to act on
Method or constructor to search for
Method or constructor to replace with
Modified instructions
A transpiler that logs a text at the beginning of the method
The instructions to act on
The log text
Modified instructions
A helper class for reflection related functions
Shortcut to simplify the use of reflections and make it work for any access level
Shortcut to simplify the use of reflections and make it work for any access level but only within the current type
Gets a type by name. Prefers a full name with namespace but falls back to the first type matching the name otherwise
The name
A Type
Applies a function going up the type hierarchy and stops at the first non null result
Result type of func()
The type to start with
The evaluation function returning T
Returns the first non null result or default(T) when reaching the top level type object
Applies a function going into inner types and stops at the first non null result
Generic type parameter
The type to start with
The evaluation function returning T
Returns the first non null result or null with no match
Gets the reflection information for a directly declared field
The class where the field is defined
The name of the field
A FieldInfo or null when type/name is null or when the field cannot be found
Gets the reflection information for a field by searching the type and all its super types
The class where the field is defined
The name of the field (case sensitive)
A FieldInfo or null when type/name is null or when the field cannot be found
Gets the reflection information for a field
The class where the field is declared
The zero-based index of the field inside the class definition
A FieldInfo or null when type is null or when the field cannot be found
Gets the reflection information for a directly declared property
The class where the property is declared
The name of the property (case sensitive)
A PropertyInfo or null when type/name is null or when the property cannot be found
Gets the reflection information for the getter method of a directly declared property
The class where the property is declared
The name of the property (case sensitive)
A MethodInfo or null when type/name is null or when the property cannot be found
Gets the reflection information for the setter method of a directly declared property
The class where the property is declared
The name of the property (case sensitive)
A MethodInfo or null when type/name is null or when the property cannot be found
Gets the reflection information for a property by searching the type and all its super types
The type
The name
A PropertyInfo or null when type/name is null or when the property cannot be found
Gets the reflection information for the getter method of a property by searching the type and all its super types
The type
The name
A MethodInfo or null when type/name is null or when the property cannot be found
Gets the reflection information for the setter method of a property by searching the type and all its super types
The type
The name
A MethodInfo or null when type/name is null or when the property cannot be found
Gets the reflection information for a directly declared method
The class where the method is declared
The name of the method (case sensitive)
Optional parameters to target a specific overload of the method
Optional list of types that define the generic version of the method
A MethodInfo or null when type/name is null or when the method cannot be found
Gets the reflection information for a method by searching the type and all its super types
The class where the method is declared
The name of the method (case sensitive)
Optional parameters to target a specific overload of the method
Optional list of types that define the generic version of the method
A MethodInfo or null when type/name is null or when the method cannot be found
Gets the reflection information for a method by searching the type and all its super types
The full name (Namespace.Type1.Type2:MethodName) of the type where the method is declared
Optional parameters to target a specific overload of the method
Optional list of types that define the generic version of the method
A MethodInfo or null when type/name is null or when the method cannot be found
Gets the names of all method that are declared in a type
The declaring type
A list of method names
Gets the names of all method that are declared in the type of the instance
An instance of the type to search in
A list of method names
Gets the names of all fields that are declared in a type
The declaring type
A list of field names
Gets the names of all fields that are declared in the type of the instance
An instance of the type to search in
A list of field names
Gets the names of all properties that are declared in a type
The declaring type
A list of property names
Gets the names of all properties that are declared in the type of the instance
An instance of the type to search in
A list of property names
Gets the type of any member of a class
An EventInfo, FieldInfo, MethodInfo, or PropertyInfo
The type that represents the output of this member
Gets the reflection information for a directly declared constructor
The class where the constructor is declared
Optional parameters to target a specific overload of the constructor
A ConstructorInfo or null when type is null or when the constructor cannot be found
Gets the reflection information for a constructor by searching the type and all its super types
The class where the constructor is declared
Optional parameters to target a specific overload of the method
A ConstructorInfo or null when type is null or when the method cannot be found
Gets reflection information for all declared constructors
The class where the constructors are declared
A list of ConstructorInfo
Gets reflection information for all declared methods
The class where the methods are declared
A list of MethodInfo
Gets reflection information for all declared properties
The class where the properties are declared
A list of PropertyInfo
Gets reflection information for all declared fields
The class where the fields are declared
A list of FieldInfo
Gets the return type of a method or constructor
The method or constructor
The return type of the method
Given a type, returns the first inner type matching a recursive search by name
The type to start searching at
The name of the inner type (case sensitive)
The inner type or null if type/name is null or if a type with that name cannot be found
Given a type, returns the first inner type matching a recursive search with a predicate
The type to start searching at
The predicate to search with
The inner type or null if type/predicate is null or if a type with that name cannot be found
Given a type, returns the first method matching a predicate
The type to start searching at
The predicate to search with
The MethodInfo or null if type/predicate is null or if a type with that name cannot be found
Given a type, returns the first constructor matching a predicate
The type to start searching at
The predicate to search with
The ConstructorInfo or null if type/predicate is null or if a type with that name cannot be found
Given a type, returns the first property matching a predicate
The type to start searching at
The predicate to search with
The PropertyInfo or null if type/predicate is null or if a type with that name cannot be found
Returns an array containing the type of each object in the given array
An array of objects
An array of types or an empty array if parameters is null (if an object is null, the type for it will be object)
Creates an array of input parameters for a given method and a given set of potential inputs
The method you are planing to call
The possible input parameters in any order
An object array matching the method signature
A read/writable reference to a field
The class the field is defined in
The type of the field
The runtime instance to access the field (leave empty for static fields)
The value of the field (or an assignable object)
Creates a field reference
The class the field is defined in
The type of the field
The name of the field
A read and writable field reference
Creates a field reference
The class the field is defined in or "object" if type cannot be accessed at compile time
The type of the field
FieldInfo for the field
A read and writable field reference
Creates a field reference for a specific instance
The class the field is defined in
The type of the field
The instance
The name of the field
A read and writable field reference
Returns who called the current method
The calling method (excluding the current method)
Throws a missing member runtime exception
The class that is involved
A list of names
Gets default value for a specific type
The type
The default value
Creates an (possibly uninitialized) instance of a given type
The type
The new instance
Makes a deep copy of any object
The type of the instance that should be created
The original object
A copy of the original object but of type T
Makes a deep copy of any object
The type of the instance that should be created
The original object
[out] The copy of the original object
Optional value transformation function (taking a field name and src/dst traverse objects)
The optional path root to start with
Makes a deep copy of any object
The original object
The type of the instance that should be created
Optional value transformation function (taking a field name and src/dst traverse objects)
The optional path root to start with
The copy of the original object
Tests if a type is a struct
The type
True if the type is a struct
Tests if a type is a class
The type
True if the type is a class
Tests if a type is a value type
The type
True if the type is a value type
Tests if a type is void
The type
True if the type is void
Test whether an instance is of a nullable type
Type of instance
An instance to test
True if instance is of nullable type, false if not
A CodeInstruction match
The name of the match
The matched opcodes
The matched operands
The matched labels
The matched blocks
The jumps from the match
The jumps to the match
The match predicate
Creates a code match
The optional opcode
The optional operand
The optional name
Creates a code match
The CodeInstruction
An optional name
Creates a code match
The predicate
An optional name
Returns a string that represents the match
A string representation
A CodeInstruction matcher
The current position
The index or -1 if out of bounds
Gets the number of code instructions in this matcher
The count
Checks whether the position of this CodeMatcher is within bounds
True if this CodeMatcher is valid
Checks whether the position of this CodeMatcher is outside its bounds
True if this CodeMatcher is invalid
Gets the remaining code instructions
The remaining count
Gets the opcode at the current position
The opcode
Gets the operand at the current position
The operand
Gets the labels at the current position
The labels
Gets the exception blocks at the current position
The blocks
Creates an empty code matcher
Creates a code matcher from an enumeration of instructions
The instructions (transpiler argument)
An optional IL generator
Makes a clone of this instruction matcher
A copy of this matcher
Gets instructions at the current position
The instruction
Gets instructions at the current position with offset
The offset
The instruction
Gets all instructions
A list of instructions
Gets some instructions counting from current position
Number of instructions
A list of instructions
Gets all instructions within a range
The start index
The end index
A list of instructions
Gets all instructions within a range (relative to current position)
The start offset
The end offset
A list of instructions
Gets a list of all distinct labels
The instructions (transpiler argument)
A list of Labels
Reports a failure
The method involved
The logger
True if current position is invalid and error was logged
Sets an instruction at current position
The instruction to set
The same code matcher
Sets instruction at current position and advances
The instruction
The same code matcher
Sets opcode and operand at current position
The opcode
The operand
The same code matcher
Sets opcode and operand at current position and advances
The opcode
The operand
The same code matcher
Sets opcode at current position and advances
The opcode
The same code matcher
Sets operand at current position and advances
The operand
The same code matcher
Creates a label at current position
[out] The label
The same code matcher
Creates a label at a position
The position
[out] The new label
The same code matcher
Adds an enumeration of labels to current position
The labels
The same code matcher
Adds an enumeration of labels at a position
The position
The labels
The same code matcher
Sets jump to
Branch instruction
Destination for the jump
[out] The created label
The same code matcher
Inserts some instructions
The instructions
The same code matcher
Inserts an enumeration of instructions
The instructions
The same code matcher
Inserts a branch
The branch opcode
Branch destination
The same code matcher
Inserts some instructions and advances the position
The instructions
The same code matcher
Inserts an enumeration of instructions and advances the position
The instructions
The same code matcher
Inserts a branch and advances the position
The branch opcode
Branch destination
The same code matcher
Removes current instruction
The same code matcher
Removes some instruction fro current position by count
Number of instructions
The same code matcher
Removes the instructions in a range
The start
The end
The same code matcher
Removes the instructions in a offset range
The start offset
The end offset
The same code matcher
Advances the current position
The offset
The same code matcher
Moves the current position to the start
The same code matcher
Moves the current position to the end
The same code matcher
Searches forward with a predicate and advances position
The predicate
The same code matcher
Searches backwards with a predicate and reverses position
The predicate
The same code matcher
Matches forward and advances position
True to set position to end of match, false to set it to the beginning of the match
Some code matches
The same code matcher
Matches backwards and reverses position
True to set position to end of match, false to set it to the beginning of the match
Some code matches
The same code matcher
Repeats a match action until boundaries are met
The match action
An optional action that is executed when no match is found
The same code matcher
Gets a match by its name
The match name
An instruction
General extensions for common cases
Joins an enumeration with a value converter and a delimiter to a string
The inner type of the enumeration
The enumeration
An optional value converter (from T to string)
An optional delimiter
The values joined into a string
Converts an array of types (for example methods arguments) into a human readable form
The array of types
A human readable description including brackets
A full description of a type
The type
A human readable description
A a full description of a method or a constructor without assembly details but with generics
The method or constructor
A human readable description
A helper converting parameter infos to types
The array of ParameterInfo
The parameter types
A helper to access a value via key from a dictionary
The key type
The value type
The dictionary
The key
The value for the key or the default value (of T) if that key does not exist
A helper to access a value via key from a dictionary with extra casting
The value type
The dictionary
The key
The value for the key or the default value (of T) if that key does not exist or cannot be cast to T
General extensions for collections
A simple way to execute code for every element in a collection
The inner type of the collection
The collection
The action to execute
A simple way to execute code for elements in a collection matching a condition
The inner type of the collection
The collection
The predicate
The action to execute
A helper to add an item to a collection
The inner type of the collection
The collection
The item to add
The collection containing the item
Note: this was called 'Add' before but that led to unwanted side effect
See https://github.com/pardeike/Harmony/issues/147
A helper to add an item to an array
The inner type of the collection
The array
The item to add
The array containing the item
A helper to add items to an array
The inner type of the collection
The array
The items to add
The array containing the items
A file log for debugging
Full pathname of the log file
The indent character
The indent level
A buffer
Changes indent depth
The value to add to the indent level
Log a string in a buffered way. Use this method only if you are sure that FlushBuffer will be called
or else logging information is incomplete in case of a crash
The string to log
Logs a list of string in a buffered way. Use this method only if you are sure that FlushBuffer will be called
or else logging information is incomplete in case of a crash
The strings to log (they will not be re-indented)
Returns the log buffer and optionally empties it
True to empty the buffer
The buffer.
Replaces the buffer with new lines
The lines to store
Flushes the log buffer to disk (use in combination with LogBuffered)
Log a string directly to disk. Slower method that prevents missing information in case of a crash
The string to log.
Resets and deletes the log
Logs some bytes as hex values
The pointer to some memory
The length of bytes to log
A helper class to retrieve reflection info for non-private methods
Given a lambda expression that calls a method, returns the method info
The lambda expression using the method
The MethodInfo for the method in the lambda expression
Given a lambda expression that calls a method, returns the method info
The lambda expression using the method
The MethodInfo for the method in the lambda expression
Given a lambda expression that calls a method, returns the method info
The lambda expression using the method
The MethodInfo for the method in the lambda expression
Given a lambda expression that calls a method, returns the method info
The lambda expression using the method
The MethodInfo for the method in the lambda expression
A reflection helper to read and write private elements
The result type defined by GetValue()
Creates a traverse instance from an existing instance
The original
Gets/Sets the current value
The value to read or write
A reflection helper to read and write private elements
Creates a new traverse instance from a class
The class
A traverse instance
Creates a new traverse instance from a class T
The class
A traverse instance
Creates a new traverse instance from an instance
The object
A traverse instance
Creates a new traverse instance from a named type
The type name
A traverse instance
Creates a new and empty traverse instance
A traverse instance
Creates a new traverse instance from a class
The class
A traverse instance
Creates a new traverse instance from an instance
The object
A traverse instance
Gets the current value
The value
Gets the current value
The type of the value
The value
Invokes the current method with arguments and returns the result
The method arguments
The value returned by the method
Invokes the current method with arguments and returns the result
The type of the value
The method arguments
The value returned by the method
Sets a value of the current field or property
The value
The same traverse instance
Gets the type of the current field or property
The type
Moves the current traverse instance to a inner type
The type name
A traverse instance
Moves the current traverse instance to a field
The type name
A traverse instance
Moves the current traverse instance to a field
The type of the field
The type name
A traverse instance
Gets all fields of the current type
A list of field names
Moves the current traverse instance to a property
The type name
Optional property index
A traverse instance
Moves the current traverse instance to a field
The type of the property
The type name
Optional property index
A traverse instance
Gets all properties of the current type
A list of property names
Moves the current traverse instance to a method
The name of the method
The arguments defining the argument types of the method overload
A traverse instance
Moves the current traverse instance to a method
The name of the method
The argument types of the method
The arguments for the method
A traverse instance
Gets all methods of the current type
A list of method names
Checks if the current traverse instance is for a field
True if its a field
Checks if the current traverse instance is for a method
True if its a method
Checks if the current traverse instance is for a type
True if its a type
Iterates over all fields of the current type and executes a traverse action
Original object
The action receiving a traverse for each field
Iterates over all fields of the current type and executes a traverse action
Original object
Target object
The action receiving a traverse for each field traverse pair
Iterates over all fields of the current type and executes a traverse action
Original object
Target object
The action receiving a field dot path and a field pair
Iterates over all properties of the current type and executes a traverse action
Original object
The action receiving a traverse for each property
Iterates over all properties of the current type and executes a traverse action
Original object
Target object
The action receiving a traverse for each property traverse pair
Iterates over all properties of the current type and executes a traverse action
Original object
Target object
The action receiving a property dot path and a property pair
A default field action that copies fields to fields
Returns a string that represents the current traverse
A string representation