/// <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); }
/// <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); } }