private static void InvokeCallbackList(List <WindowInjectionManager.DrawInjectedContents> callbacks, Window _this, Rect inRect) { List <WindowInjectionManager.DrawInjectedContents> faultyCallbacks = null; for (int i = 0; i < callbacks.Count; i++) { try { callbacks[i](_this, inRect); } catch (Exception e) { HugsLibController.Logger.Error("Injected window callback ({0}) caused an exception and was removed. Exception was: {1}", HugsLibUtility.DescribeDelegate(callbacks[0]), e); if (WindowInjectionManager.RemoveErroringCallbacks || !Prefs.DevMode) { if (faultyCallbacks == null) { faultyCallbacks = new List <WindowInjectionManager.DrawInjectedContents>(); } faultyCallbacks.Add(callbacks[i]); } } } if (faultyCallbacks != null) { callbacks.RemoveAll(c => faultyCallbacks.Contains(c)); } }
public override string ToString() { return($"[{nameof(Label)}:{Label.ToStringSafe()}, {nameof(Action)}:{HugsLibUtility.DescribeDelegate(Action)}]"); }