MethodDefinition GetRemove()
{
var remove = new MethodDefinition(NotifyDataErrorInfoFinder.InterfaceRef.FullName + ".remove_ErrorsChanged", MethodAttributes, TypeSystem.Void)
{
SemanticsAttributes = MethodSemanticsAttributes.RemoveOn,
IsPrivate = true
};
remove.Overrides.Add(NotifyDataErrorInfoFinder.ErrorsChangedRemoveMethod);
remove.Parameters.Add(new ParameterDefinition(NotifyDataErrorInfoFinder.ErrorsChangedEventType));
remove.Body.Instructions.Append(
Instruction.Create(OpCodes.Ldarg_0),
Instruction.Create(OpCodes.Ldfld, ValidationTemplateField),
Instruction.Create(OpCodes.Ldarg_1),
Instruction.Create(OpCodes.Callvirt, NotifyDataErrorInfoFinder.ErrorsChangedRemoveMethod),
Instruction.Create(OpCodes.Ret));
TypeDefinition.Methods.Add(remove);
return remove;
}