/// <summary> /// 移除事件处理器。 /// </summary> /// <param name="route">事件路由。</param> /// <param name="handler">事件处理器。</param> public virtual void RemoveAsyncEventHandler(DomainServiceEventRoute route, DomainServiceAsyncEventHandler handler) { if (route == null) { throw new ArgumentNullException(nameof(route)); } if (handler == null) { throw new ArgumentNullException(nameof(handler)); } if (route.HandlerType != typeof(DomainServiceAsyncEventHandler)) { throw new InvalidCastException("事件路由处理器类型与传入的类型不符。"); } lock (_Events) { Delegate d = GetEventRouteDelegate(route); if (d == null) { SetEventRouteDelegate(route, handler); } else { SetEventRouteDelegate(route, Delegate.Remove(d, handler)); } } }
/// <summary> /// 移除事件处理器。 /// </summary> /// <param name="route">事件路由。</param> /// <param name="handler">事件处理器。</param> protected virtual void RemoveAsyncEventHandler <T>(DomainServiceEventRoute route, DomainServiceAsyncEventHandler <T> handler) where T : EventArgs { DomainServiceEventManager.GlobalEventManager.RemoveAsyncEventHandler(route, handler); }
/// <summary> /// 移除事件处理器。 /// </summary> /// <param name="route">事件路由。</param> /// <param name="handler">事件处理器。</param> protected virtual void RemoveAsyncEventHandler(DomainServiceEventRoute route, DomainServiceAsyncEventHandler handler) { DomainServiceEventManager.GlobalEventManager.RemoveAsyncEventHandler(route, handler); }