Class MonoModder
Inheritance
System.Object
MonoModder
Implements
System.IDisposable
Assembly: MonoMod.dll
Syntax
public class MonoModder : Object, IDisposable
Constructors
MonoModder()
Declaration
Fields
_assemblyResolver
Declaration
protected IAssemblyResolver _assemblyResolver
Field Value
| Type |
Description |
| Mono.Cecil.IAssemblyResolver |
|
_GACPaths
Declaration
protected string[] _GACPaths
Field Value
| Type |
Description |
| System.String[] |
|
_mmAddedCtor
Declaration
protected MethodDefinition _mmAddedCtor
Field Value
| Type |
Description |
| Mono.Cecil.MethodDefinition |
|
_mmOriginalCtor
Declaration
protected MethodDefinition _mmOriginalCtor
Field Value
| Type |
Description |
| Mono.Cecil.MethodDefinition |
|
_mmOriginalNameCtor
Declaration
protected MethodDefinition _mmOriginalNameCtor
Field Value
| Type |
Description |
| Mono.Cecil.MethodDefinition |
|
_mmPatchCtor
Declaration
protected MethodDefinition _mmPatchCtor
Field Value
| Type |
Description |
| Mono.Cecil.MethodDefinition |
|
_readerParameters
Declaration
protected ReaderParameters _readerParameters
Field Value
| Type |
Description |
| Mono.Cecil.ReaderParameters |
|
_writerParameters
Declaration
protected WriterParameters _writerParameters
Field Value
| Type |
Description |
| Mono.Cecil.WriterParameters |
|
CleanupEnabled
Declaration
public bool CleanupEnabled
Field Value
| Type |
Description |
| System.Boolean |
|
CurrentRID
Declaration
Field Value
| Type |
Description |
| System.Int32 |
|
CustomAttributeHandlers
Declaration
public Dictionary<string, Action<object, object[]>> CustomAttributeHandlers
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, System.Action<System.Object, System.Object[]>> |
|
CustomMethodAttributeHandlers
Declaration
public Dictionary<string, Action<object, object[]>> CustomMethodAttributeHandlers
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, System.Action<System.Object, System.Object[]>> |
|
Declaration
public DebugSymbolFormat DebugSymbolOutputFormat
Field Value
DependencyCache
Declaration
public Dictionary<string, ModuleDefinition> DependencyCache
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, Mono.Cecil.ModuleDefinition> |
|
DependencyDirs
Declaration
public List<string> DependencyDirs
Field Value
| Type |
Description |
| System.Collections.Generic.List<System.String> |
|
DependencyMap
Declaration
public Dictionary<ModuleDefinition, List<ModuleDefinition>> DependencyMap
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<Mono.Cecil.ModuleDefinition, System.Collections.Generic.List<Mono.Cecil.ModuleDefinition>> |
|
ForceCallMap
Declaration
public Dictionary<string, OpCode> ForceCallMap
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, Mono.Cecil.Cil.OpCode> |
|
Declaration
Field Value
| Type |
Description |
| System.IO.Stream |
|
Declaration
Field Value
| Type |
Description |
| System.String |
|
IsMono
Declaration
public static readonly bool IsMono
Field Value
| Type |
Description |
| System.Boolean |
|
LogVerboseEnabled
Declaration
public bool LogVerboseEnabled
Field Value
| Type |
Description |
| System.Boolean |
|
MethodBodyRewriter
Declaration
public MethodBodyRewriter MethodBodyRewriter
Field Value
MethodParser
Declaration
public MethodParser MethodParser
Field Value
MethodRewriter
Declaration
public MethodRewriter MethodRewriter
Field Value
MissingDependencyResolver
Declaration
public MissingDependencyResolver MissingDependencyResolver
Field Value
MissingDependencyThrow
Declaration
public bool MissingDependencyThrow
Field Value
| Type |
Description |
| System.Boolean |
|
Mods
Declaration
public List<ModuleReference> Mods
Field Value
| Type |
Description |
| System.Collections.Generic.List<Mono.Cecil.ModuleReference> |
|
Module
Declaration
public ModuleDefinition Module
Field Value
| Type |
Description |
| Mono.Cecil.ModuleDefinition |
|
OnReadMod
Declaration
public ModReadEventHandler OnReadMod
Field Value
Output
Declaration
Field Value
| Type |
Description |
| System.IO.Stream |
|
OutputPath
Declaration
Field Value
| Type |
Description |
| System.String |
|
PostProcessors
Declaration
public PostProcessor PostProcessors
Field Value
PreventInline
Declaration
public bool PreventInline
Field Value
| Type |
Description |
| System.Boolean |
|
PublicEverything
Declaration
public bool PublicEverything
Field Value
| Type |
Description |
| System.Boolean |
|
ReadingMode
Declaration
public ReadingMode ReadingMode
Field Value
| Type |
Description |
| Mono.Cecil.ReadingMode |
|
RelinkerCacheEnabled
Declaration
public bool RelinkerCacheEnabled
Field Value
| Type |
Description |
| System.Boolean |
|
RelinkMap
Declaration
public Dictionary<string, object> RelinkMap
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, System.Object> |
|
RelinkMapCache
Declaration
public Dictionary<string, IMetadataTokenProvider> RelinkMapCache
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, Mono.Cecil.IMetadataTokenProvider> |
|
RelinkModuleMap
Declaration
public Dictionary<string, ModuleDefinition> RelinkModuleMap
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, Mono.Cecil.ModuleDefinition> |
|
RelinkModuleMapCache
Declaration
public Dictionary<string, TypeReference> RelinkModuleMapCache
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, Mono.Cecil.TypeReference> |
|
RemovePatchReferences
Declaration
public bool RemovePatchReferences
Field Value
| Type |
Description |
| System.Boolean |
|
SharedData
Declaration
public Dictionary<string, object> SharedData
Field Value
| Type |
Description |
| System.Collections.Generic.Dictionary<System.String, System.Object> |
|
ShouldCleanupAttrib
Declaration
public Func<ICustomAttributeProvider, TypeReference, bool> ShouldCleanupAttrib
Field Value
| Type |
Description |
| System.Func<Mono.Cecil.ICustomAttributeProvider, Mono.Cecil.TypeReference, System.Boolean> |
|
SkipList
Declaration
public HashSet<string> SkipList
Field Value
| Type |
Description |
| System.Collections.Generic.HashSet<System.String> |
|
Strict
Declaration
Field Value
| Type |
Description |
| System.Boolean |
|
UpgradeMSCORLIB
Declaration
public Nullable<bool> UpgradeMSCORLIB
Field Value
| Type |
Description |
| System.Nullable<System.Boolean> |
|
Version
Declaration
public static readonly Version Version
Field Value
| Type |
Description |
| System.Version |
|
Properties
AssemblyResolver
Declaration
public virtual IAssemblyResolver AssemblyResolver { get; set; }
Property Value
| Type |
Description |
| Mono.Cecil.IAssemblyResolver |
|
GACPaths
Declaration
public string[] GACPaths { get; set; }
Property Value
| Type |
Description |
| System.String[] |
|
ReaderParameters
Declaration
public virtual ReaderParameters ReaderParameters { get; set; }
Property Value
| Type |
Description |
| Mono.Cecil.ReaderParameters |
|
WriterParameters
Declaration
public virtual WriterParameters WriterParameters { get; set; }
Property Value
| Type |
Description |
| Mono.Cecil.WriterParameters |
|
Methods
AllowedSpecialName(MethodDefinition, TypeDefinition)
Checks if the method has a special name that is "allowed" to be patched.
Declaration
public virtual bool AllowedSpecialName(MethodDefinition method, TypeDefinition targetType = null)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.MethodDefinition |
method |
Method to check.
|
| Mono.Cecil.TypeDefinition |
targetType |
Type to which the method will be added.
|
Returns
| Type |
Description |
| System.Boolean |
true if the special name used in the method is allowed, false otherwise.
|
AutoPatch()
Automatically mods the module, loading Input, writing the modded module to Output.
Declaration
public virtual void AutoPatch()
Cleanup(ICustomAttributeProvider, Boolean)
Declaration
public virtual void Cleanup(ICustomAttributeProvider cap, bool all = false)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ICustomAttributeProvider |
cap |
|
| System.Boolean |
all |
|
Cleanup(Boolean)
Declaration
public virtual void Cleanup(bool all = false)
Parameters
| Type |
Name |
Description |
| System.Boolean |
all |
|
CleanupType(TypeDefinition, Boolean)
Declaration
public virtual void CleanupType(TypeDefinition type, bool all = false)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
type |
|
| System.Boolean |
all |
|
ClearCaches(Boolean, Boolean, Boolean)
Declaration
public virtual void ClearCaches(bool all = false, bool shareable = false, bool moduleSpecific = false)
Parameters
| Type |
Name |
Description |
| System.Boolean |
all |
|
| System.Boolean |
shareable |
|
| System.Boolean |
moduleSpecific |
|
DefaultMissingDependencyResolver(MonoModder, ModuleDefinition, String, String)
Declaration
public virtual ModuleDefinition DefaultMissingDependencyResolver(MonoModder mod, ModuleDefinition main, string name, string fullName)
Parameters
| Type |
Name |
Description |
| MonoModder |
mod |
|
| Mono.Cecil.ModuleDefinition |
main |
|
| System.String |
name |
|
| System.String |
fullName |
|
Returns
| Type |
Description |
| Mono.Cecil.ModuleDefinition |
|
DefaultParser(MonoModder, MethodBody, Instruction, ref Int32)
Declaration
public virtual bool DefaultParser(MonoModder mod, MethodBody body, Instruction instr, ref int instri)
Parameters
| Type |
Name |
Description |
| MonoModder |
mod |
|
| Mono.Cecil.Cil.MethodBody |
body |
|
| Mono.Cecil.Cil.Instruction |
instr |
|
| System.Int32 |
instri |
|
Returns
| Type |
Description |
| System.Boolean |
|
DefaultPostProcessor(MonoModder)
Declaration
public virtual void DefaultPostProcessor(MonoModder modder)
Parameters
DefaultPostProcessType(TypeDefinition)
Declaration
public virtual void DefaultPostProcessType(TypeDefinition type)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
type |
|
Dispose()
Declaration
public virtual void Dispose()
FindType(ModuleDefinition, String, Stack<ModuleDefinition>)
Declaration
protected virtual TypeReference FindType(ModuleDefinition main, string fullName, Stack<ModuleDefinition> crawled)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ModuleDefinition |
main |
|
| System.String |
fullName |
|
| System.Collections.Generic.Stack<Mono.Cecil.ModuleDefinition> |
crawled |
|
Returns
| Type |
Description |
| Mono.Cecil.TypeReference |
|
FindType(String)
Declaration
public virtual TypeReference FindType(string name)
Parameters
| Type |
Name |
Description |
| System.String |
name |
|
Returns
| Type |
Description |
| Mono.Cecil.TypeReference |
|
FindType(String, Boolean)
Declaration
public virtual TypeReference FindType(string name, bool runtimeName)
Parameters
| Type |
Name |
Description |
| System.String |
name |
|
| System.Boolean |
runtimeName |
|
Returns
| Type |
Description |
| Mono.Cecil.TypeReference |
|
FindTypeDeep(String)
Declaration
public virtual TypeReference FindTypeDeep(string name)
Parameters
| Type |
Name |
Description |
| System.String |
name |
|
Returns
| Type |
Description |
| Mono.Cecil.TypeReference |
|
GenReaderParameters(Boolean, String)
Declaration
public virtual ReaderParameters GenReaderParameters(bool mainModule, string path = null)
Parameters
| Type |
Name |
Description |
| System.Boolean |
mainModule |
|
| System.String |
path |
|
Returns
| Type |
Description |
| Mono.Cecil.ReaderParameters |
|
Creates a new non-conflicting MetadataToken.
Declaration
public virtual MetadataToken GetMetadataToken(TokenType type)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TokenType |
type |
The type of the new token.
|
Returns
| Type |
Description |
| Mono.Cecil.MetadataToken |
A MetadataToken with an unique RID for the target module.
|
GetMonoModAddedCtor()
Declaration
public virtual MethodReference GetMonoModAddedCtor()
Returns
| Type |
Description |
| Mono.Cecil.MethodReference |
|
GetMonoModOriginalCtor()
Declaration
public virtual MethodReference GetMonoModOriginalCtor()
Returns
| Type |
Description |
| Mono.Cecil.MethodReference |
|
GetMonoModOriginalNameCtor()
Declaration
public virtual MethodReference GetMonoModOriginalNameCtor()
Returns
| Type |
Description |
| Mono.Cecil.MethodReference |
|
GetMonoModPatchCtor()
Declaration
public virtual MethodReference GetMonoModPatchCtor()
Returns
| Type |
Description |
| Mono.Cecil.MethodReference |
|
Log(Object)
Declaration
public virtual void Log(object value)
Parameters
| Type |
Name |
Description |
| System.Object |
value |
|
Log(String)
Declaration
public virtual void Log(string text)
Parameters
| Type |
Name |
Description |
| System.String |
text |
|
LogVerbose(Object)
Declaration
public virtual void LogVerbose(object value)
Parameters
| Type |
Name |
Description |
| System.Object |
value |
|
LogVerbose(String)
Declaration
public virtual void LogVerbose(string text)
Parameters
| Type |
Name |
Description |
| System.String |
text |
|
MainRelinker(IMetadataTokenProvider, IGenericParameterProvider)
Declaration
public virtual IMetadataTokenProvider MainRelinker(IMetadataTokenProvider mtp, IGenericParameterProvider context)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.IMetadataTokenProvider |
mtp |
|
| Mono.Cecil.IGenericParameterProvider |
context |
|
Returns
| Type |
Description |
| Mono.Cecil.IMetadataTokenProvider |
|
MapDependencies()
Declaration
public virtual void MapDependencies()
MapDependencies(ModuleDefinition)
Declaration
public virtual void MapDependencies(ModuleDefinition main)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ModuleDefinition |
main |
|
MapDependency(ModuleDefinition, AssemblyNameReference)
Declaration
public virtual void MapDependency(ModuleDefinition main, AssemblyNameReference depRef)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ModuleDefinition |
main |
|
| Mono.Cecil.AssemblyNameReference |
depRef |
|
MapDependency(ModuleDefinition, String, String, AssemblyNameReference)
Declaration
public virtual void MapDependency(ModuleDefinition main, string name, string fullName = null, AssemblyNameReference depRef = null)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ModuleDefinition |
main |
|
| System.String |
name |
|
| System.String |
fullName |
|
| Mono.Cecil.AssemblyNameReference |
depRef |
|
MatchingConditionals(ICustomAttributeProvider, AssemblyNameReference)
Declaration
public virtual bool MatchingConditionals(ICustomAttributeProvider cap, AssemblyNameReference asmName = null)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ICustomAttributeProvider |
cap |
|
| Mono.Cecil.AssemblyNameReference |
asmName |
|
Returns
| Type |
Description |
| System.Boolean |
|
MatchingConditionals(ICustomAttributeProvider, ModuleDefinition)
Declaration
public virtual bool MatchingConditionals(ICustomAttributeProvider cap, ModuleDefinition module)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ICustomAttributeProvider |
cap |
|
| Mono.Cecil.ModuleDefinition |
module |
|
Returns
| Type |
Description |
| System.Boolean |
|
ParseLinkFrom(MemberReference, CustomAttribute)
Declaration
public virtual void ParseLinkFrom(MemberReference target, CustomAttribute hook)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.MemberReference |
target |
|
| Mono.Cecil.CustomAttribute |
hook |
|
ParseLinkTo(MemberReference, CustomAttribute)
Declaration
public virtual void ParseLinkTo(MemberReference from, CustomAttribute hook)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.MemberReference |
from |
|
| Mono.Cecil.CustomAttribute |
hook |
|
ParseRules(ModuleDefinition)
Declaration
public virtual void ParseRules(ModuleDefinition mod)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ModuleDefinition |
mod |
|
ParseRulesInType(TypeDefinition, Type)
Declaration
public virtual void ParseRulesInType(TypeDefinition type, Type rulesTypeMMILRT = null)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
type |
|
| System.Type |
rulesTypeMMILRT |
|
PatchEvent(TypeDefinition, EventDefinition, HashSet<MethodDefinition>)
Declaration
public virtual void PatchEvent(TypeDefinition targetType, EventDefinition srcEvent, HashSet<MethodDefinition> propMethods = null)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
targetType |
|
| Mono.Cecil.EventDefinition |
srcEvent |
|
| System.Collections.Generic.HashSet<Mono.Cecil.MethodDefinition> |
propMethods |
|
PatchField(TypeDefinition, FieldDefinition)
Declaration
public virtual void PatchField(TypeDefinition targetType, FieldDefinition field)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
targetType |
|
| Mono.Cecil.FieldDefinition |
field |
|
PatchMethod(TypeDefinition, MethodDefinition)
Declaration
public virtual MethodDefinition PatchMethod(TypeDefinition targetType, MethodDefinition method)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
targetType |
|
| Mono.Cecil.MethodDefinition |
method |
|
Returns
| Type |
Description |
| Mono.Cecil.MethodDefinition |
|
PatchModule(ModuleDefinition)
Patches the module (adds new type members).
Declaration
public virtual void PatchModule(ModuleDefinition mod)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ModuleDefinition |
mod |
Mod to patch into the input module.
|
PatchNested(TypeDefinition)
Declaration
protected virtual void PatchNested(TypeDefinition type)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
type |
|
PatchProperty(TypeDefinition, PropertyDefinition, HashSet<MethodDefinition>)
Declaration
public virtual void PatchProperty(TypeDefinition targetType, PropertyDefinition prop, HashSet<MethodDefinition> propMethods = null)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
targetType |
|
| Mono.Cecil.PropertyDefinition |
prop |
|
| System.Collections.Generic.HashSet<Mono.Cecil.MethodDefinition> |
propMethods |
|
PatchRefs()
Declaration
public virtual void PatchRefs()
PatchRefs(ModuleDefinition)
Declaration
public virtual void PatchRefs(ModuleDefinition mod)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ModuleDefinition |
mod |
|
PatchRefsInMethod(MethodDefinition)
Declaration
public virtual void PatchRefsInMethod(MethodDefinition method)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.MethodDefinition |
method |
|
PatchRefsInType(TypeDefinition)
Declaration
public virtual void PatchRefsInType(TypeDefinition type)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
type |
|
PatchType(TypeDefinition)
Patches the type (adds new members).
Declaration
public virtual void PatchType(TypeDefinition type)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
type |
Type to patch into the input module.
|
PatchWasHere()
Declaration
public virtual TypeDefinition PatchWasHere()
Returns
| Type |
Description |
| Mono.Cecil.TypeDefinition |
|
PostRelinker(IMetadataTokenProvider, IGenericParameterProvider)
Declaration
public virtual IMetadataTokenProvider PostRelinker(IMetadataTokenProvider mtp, IGenericParameterProvider context)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.IMetadataTokenProvider |
mtp |
|
| Mono.Cecil.IGenericParameterProvider |
context |
|
Returns
| Type |
Description |
| Mono.Cecil.IMetadataTokenProvider |
|
PrePatchModule(ModuleDefinition)
Pre-Patches the module (adds new types, module references, resources, ...).
Declaration
public virtual void PrePatchModule(ModuleDefinition mod)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ModuleDefinition |
mod |
Mod to patch into the input module.
|
PrePatchNested(TypeDefinition)
Declaration
protected virtual void PrePatchNested(TypeDefinition type)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
type |
|
PrePatchType(TypeDefinition, Boolean)
Patches the type (adds new types).
Declaration
public virtual void PrePatchType(TypeDefinition type, bool forceAdd = false)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.TypeDefinition |
type |
Type to patch into the input module.
|
| System.Boolean |
forceAdd |
Forcibly add the type, no matter if it already exists or if it's MonoModRules.
|
Read()
Reads the main module from the Input stream / InputPath file to Module.
Declaration
public virtual void Read()
ReadMod(Stream)
Declaration
public virtual void ReadMod(Stream stream)
Parameters
| Type |
Name |
Description |
| System.IO.Stream |
stream |
|
ReadMod(String)
Declaration
public virtual void ReadMod(string path)
Parameters
| Type |
Name |
Description |
| System.String |
path |
|
Declaration
public virtual IMetadataTokenProvider Relinker(IMetadataTokenProvider mtp, IGenericParameterProvider context)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.IMetadataTokenProvider |
mtp |
|
| Mono.Cecil.IGenericParameterProvider |
context |
|
Returns
| Type |
Description |
| Mono.Cecil.IMetadataTokenProvider |
|
Declaration
public virtual IMetadataTokenProvider ResolveRelinkTarget(IMetadataTokenProvider mtp, bool relink = true, bool relinkModule = true)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.IMetadataTokenProvider |
mtp |
|
| System.Boolean |
relink |
|
| System.Boolean |
relinkModule |
|
Returns
| Type |
Description |
| Mono.Cecil.IMetadataTokenProvider |
|
RunCustomAttributeHandlers(ICustomAttributeProvider)
Declaration
public virtual void RunCustomAttributeHandlers(ICustomAttributeProvider cap)
Parameters
| Type |
Name |
Description |
| Mono.Cecil.ICustomAttributeProvider |
cap |
|
Write(Stream, String)
Write the modded module to the given stream or the default output.
Declaration
public virtual void Write(Stream output = null, string outputPath = null)
Parameters
| Type |
Name |
Description |
| System.IO.Stream |
output |
Output stream. If none given, outputPath or default Output will be used.
|
| System.String |
outputPath |
Output path. If none given, output or default OutputPath will be used.
|
Implements
System.IDisposable
Extension Methods