public bool WriteWithLiaison(object target, Interval field_update_interval, object liaison, Buffer buffer) { if (object_liaison_writer == null) { object_liaison_writer = GetTargetType().CreateDynamicMethodDelegateWithForcedParameterTypes <ObjectLiaisonWriter>(delegate(ILValue il_target, ILValue il_field_update_interval, ILValue il_liaison, ILValue il_buffer) { ILBlock block = new ILBlock(); ILLocal il_to_return = block.CreateNamedLocal(typeof(bool), "to_return"); block.AddStatements( target_serializer_prop_groups .Convert(g => g.GenerateWrite(il_target, il_field_update_interval, type_update_interval, il_liaison, il_to_return, il_buffer)) ); block.AddStatement(new ILReturn(il_to_return)); return(block); }, GetTargetType(), typeof(Interval), GetLiaisonType(), typeof(Buffer)); } return(object_liaison_writer(target, field_update_interval, liaison, buffer)); }