/// <summary> /// Write off an Observer in Subject /// </summary> /// <typeparam name="TMessage"></typeparam> /// <param name="handler"></param> public void Unregister <TMessage>(object sender, ObserverHandler <TMessage> handler) { Subject <TMessage> msgHandler = Subject <TMessage>(sender); if (msgHandler != null) { msgHandler.Observers -= handler; } }
/// <summary> /// Register Subject,and register an Observer in the subject /// </summary> /// <typeparam name="TMessage"></typeparam> /// <param name="handler"></param> public void Register <TMessage>(ObserverHandler <TMessage> handler) { Subject <TMessage> msgHandler = Subject <TMessage>(null); if (msgHandler != null) { msgHandler.Observers += handler; } }
static public void addHandler(ObserverHandler plugin) { if (_observer == null) { _observer = plugin; } else { _observer += plugin; } }
public StaticActionSubscribeProvider(MethodInfo method, string topic, SubscribeMode mode) { Method = method; Factory = (instance) => { var handler = Delegate.CreateDelegate(ActionType, method); var messageHandler = ObserverHandler.Create((Action)handler); return(new SubscribeInfo(null, messageHandler) { Topic = topic, Mode = mode }); }; }
public static void UnRegister <TMessage>(ObserverHandler <TMessage> handler) { UnRegister <TMessage>(null, handler); }
public static void UnRegister <TMessage>(object sender, ObserverHandler <TMessage> handler) { SubjectProxy <TMessage> msgHandler = Subject <TMessage>(sender); msgHandler.Observers -= handler; }
private void NotifyObserver() { ObserverHandler?.Invoke(); }