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

Reply via email to