So now I get this from peverify ClassWithBeforeAfterImplementation::set_Property1][offset 0x0000000F] Unrecognized local variable number.
On Mon, Oct 11, 2010 at 10:24 PM, Jb Evain <[email protected]> wrote: > Hi Simon, > > Running peverify on your assembly says: > > [IL]: Error: [C:\Users\jbevain\Downloads\AssemblyExperiments.dll : > AssemblyExper > iments.ClassWithBeforeAfterImplementation::set_Property1][offset 0x0000000E] > ini > tlocals must be set for verifiable methods with one or more local variables. > 1 Error(s) Verifying AssemblyExperiments.dll > > I suggest then that you do: > > On Mon, Oct 11, 2010 at 1:07 PM, Simon Cropp <[email protected]> wrote: >> private void AddBeforeAfrerInvokerCall(PropertyDefinition >> property, MethodBody setMethodBody) >> { >> var beforeVariable = new >> VariableDefinition(MsCoreReferenceFinder.ObjectTypeReference); > > setMethodBody.InitLocals = true; > >> setMethodBody.Variables.Add(beforeVariable); >> >> cilWorker.InsertBefore(last, cilWorker.Create(OpCodes.Ldarg_0)); >> cilWorker.InsertBefore(last, >> cilWorker.Create(OpCodes.Call, property.GetMethod)); >> cilWorker.InsertBefore(last, cilWorker.Create(OpCodes.Stloc_0)); >> cilWorker.InsertBefore(last, cilWorker.Create(OpCodes.Ldarg_0)); >> cilWorker.InsertBefore(last, >> cilWorker.Create(OpCodes.Ldstr, property.Name)); >> cilWorker.InsertBefore(last, cilWorker.Create(OpCodes.Ldloc_0)); >> cilWorker.InsertBefore(last, cilWorker.Create(OpCodes.Ldloc_1)); >> cilWorker.InsertBefore(last, >> cilWorker.Create(OpCodes.Call, >> OnPropertyChangedReference.MethodReference)); >> cilWorker.InsertBefore(last, cilWorker.Create(OpCodes.Nop)); >> } > > -- > Jb Evain <[email protected]> > > -- > -- > mono-cecil -- -- mono-cecil
AssemblyExperiments.dll
Description: Binary data
