Esempio n. 1
0
        /// <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;
            }
        }
Esempio n. 2
0
        /// <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;
     }
 }
Esempio n. 4
0
 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
         });
     };
 }
Esempio n. 5
0
 public static void UnRegister <TMessage>(ObserverHandler <TMessage> handler)
 {
     UnRegister <TMessage>(null, handler);
 }
Esempio n. 6
0
        public static void UnRegister <TMessage>(object sender, ObserverHandler <TMessage> handler)
        {
            SubjectProxy <TMessage> msgHandler = Subject <TMessage>(sender);

            msgHandler.Observers -= handler;
        }
Esempio n. 7
0
 private void NotifyObserver()
 {
     ObserverHandler?.Invoke();
 }