/// <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); } } }