Added setter to ExtensionData properties

This commit is contained in:
Alex
2025-10-20 09:09:04 +01:00
parent ab62b070a8
commit f935eb82b9
2 changed files with 16 additions and 0 deletions
@@ -12,5 +12,6 @@ public class StaticReferences
public Dictionary<string, object> Reference public Dictionary<string, object> Reference
{ {
get { return _reference; } get { return _reference; }
set { _reference = value; }
} }
} }
@@ -58,7 +58,22 @@ public class JsonExtensionDataPatch : IPatcher
get.Body.Instructions.Add(Instruction.Create(OpCodes.Ldfld, field)); get.Body.Instructions.Add(Instruction.Create(OpCodes.Ldfld, field));
get.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); get.Body.Instructions.Add(Instruction.Create(OpCodes.Ret));
// Add setter
var set = new MethodDefinition(
"set_ExtensionData",
MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig,
assembly.MainModule.TypeSystem.Void
);
set.Parameters.Add(new ParameterDefinition("value", ParameterAttributes.None, _dictionaryStringObjectReference));
set.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_0));
set.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_1));
set.Body.Instructions.Add(Instruction.Create(OpCodes.Stfld, field));
set.Body.Instructions.Add(Instruction.Create(OpCodes.Ret));
propertyDefinition.SetMethod = set;
propertyDefinition.GetMethod = get; propertyDefinition.GetMethod = get;
typeDefinition.Methods.Add(set);
typeDefinition.Methods.Add(get); typeDefinition.Methods.Add(get);
typeDefinition.Properties.Add(propertyDefinition); typeDefinition.Properties.Add(propertyDefinition);