/// <summary> /// 发布消息提示 /// </summary> /// <param name="p_notify">消息提示实例</param> public static void Notify(NotifyInfo p_notify) { if (p_notify != null && !string.IsNullOrEmpty(p_notify.Message)) { RunAsync(() => SysVisual.NotifyList.Add(p_notify)); } }
/// <summary> /// 关闭消息提示,通常在连接按钮中执行关闭 /// </summary> /// <param name="p_notify"></param> public static void CloseNotify(NotifyInfo p_notify) { if (p_notify != null) { RunAsync(() => SysVisual.NotifyList.Remove(p_notify)); } }
/// <summary> /// 警告提示 /// </summary> /// <param name="p_content">显示内容</param> /// <param name="p_delaySeconds">几秒后自动关闭,默认5秒,0表示不自动关闭</param> public static void Warn(string p_content, int p_delaySeconds = 5) { if (string.IsNullOrEmpty(p_content)) { return; } NotifyInfo notify = new NotifyInfo(); notify.Message = p_content; notify.NotifyType = NotifyType.Warning; notify.DelaySeconds = p_delaySeconds; RunAsync(() => SysVisual.NotifyList.Add(notify)); }
public static void OnUnhandledException(Exception p_ex) { try { KnownException kex; if ((kex = p_ex as KnownException) != null || (kex = p_ex.InnerException as KnownException) != null) { // 只警告,不保存日志 Kit.Warn(kex.Message); } else { string title; string msg; if (p_ex is ServerException se) { title = se.Title; msg = se.Message; } else { title = "未处理异常"; msg = $"异常消息:{p_ex.Message}\r\n堆栈信息:{p_ex.StackTrace}"; } // 警告、输出监视、保存日志 var notify = new NotifyInfo { NotifyType = NotifyType.Warning, Message = title, DelaySeconds = 5, Link = "查看详细", }; notify.LinkCallback = (e) => { ShowTraceBox(); notify.Close(); }; SysVisual.NotifyList.Add(notify); Kit.Trace(TraceOutType.UnhandledException, title, msg); Log.Error(msg); } } catch { } }