Exemplo n.º 1
0
        /// <summary>
        /// Для непосредственной подписки у клиента\сервера. Будет рабоатть асинхронно.
        /// </summary>
        /// <param name="sender"><see cref="IMessenger"/></param>
        public void CallReader(object sender, MessageEventArgs e)
        {
            ReceivedMsg msg = new ReceivedMsg((IMessenger)sender, e.Message);

            //var type= typeof(List<>).MakeGenericType(e.Message.GetType());
            //Activator.cre

            CallReader(msg);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Среди зарегистророванных методов находит подходящий по типу сообщения и вызывает его.
        /// </summary>
        public bool CallReader(ReceivedMsg msg)
        {
            Delegate reader;

            if (OnMsg != null)
            {
                OnMsg.Invoke(msg.Msg);
            }

            if (_msgReaders.TryGetValue(msg.Msg.GetType(), out reader))
            {
                reader.DynamicInvoke(msg, msg.Msg);

                return(true);
            }
            else
            {
                return(false);
            }
        }