/// <summary>
        /// Prépare le message de log
        /// </summary>
        /// <param name="infos"></param>
        /// <param name="values"></param>
        private void EnteringMethodLogMessage(MethodInfo infos, params string[] values)
        {
            if (LogTools.IsDebugModeActive())
            {
                ParameterInfo[] parameters   = infos.GetParameters();
                string          paramsString = string.Empty;

                int i = 0;
                if (values != null)
                {
                    foreach (ParameterInfo parameter in parameters)
                    {
                        if (values.Length > i)
                        {
                            paramsString += parameter.ParameterType.Name + " " + parameter.Name + " = '" + values[i] + "', ";
                            i++;
                        }
                    }
                }

                if (paramsString.Length > 2)
                {
                    paramsString = paramsString.Substring(0, paramsString.Length - 2);
                }

                LogTools.WriteDebug(string.Format(Logs.SERVICE_DEBUG_ENTERING_METHOD, infos.Name, paramsString));
            }
        }
        /// <summary>
        /// Méthode delegate de try/catch
        /// </summary>
        /// <param name="method">Methode qui sera executée</param>
        /// <param name="errorMessage">Message d'erreur utilisateur</param>
        /// <param name="writelog">Doit écrire dans le log</param>
        /// <param name="values">Valeurs de log</param>
        protected void RunServiceTask(ServiceTask method, ServiceMemoryError memoryMethod, string errorMessage, bool writelog, params string[] values)
        {
            if (writelog)
            {
                EnteringMethodLogMessage(method.Method, values);
            }

            try
            {
                method();
            }
            catch (InsufficientMemoryException ie)
            {
                LogTools.WriteInfo(Logs.MANAGER_MEMORY_ERROR);
                LogTools.WriteDebug(ie.Message);
                if (memoryMethod != null)
                {
                    memoryMethod();
                }
            }
            catch (Exception ex)
            {
                if (LogTools.IsDebugModeActive())
                {
                    MessageBox.Show(errorMessage + "\r\n" + Errors.ERROR_METHOD + method.Method.Name + ": " + ex.Message, Errors.ERROR_BOX_TITLE);
                    if (writelog)
                    {
                        LogTools.WriteDebug(errorMessage + "\r\n" + Errors.ERROR_METHOD + method.Method.Name + ": " + ex.Message);
                    }
                }
                else
                {
                    MessageBox.Show(errorMessage, Errors.ERROR_BOX_TITLE);
                }
            }
        }