Exemple #1
0
        public void Register(ICoroutineThread coroutineThreadBase)
        {
            var typeName = typeof(IMessageHandler).Name;
            var type     = coroutineThreadBase.GetType();

            foreach (var receiver in GetAllHandledMessageTypes(type, typeName))
            {
                if (!_handlers.ContainsKey(receiver))
                {
                    _handlers.Add(receiver, new List <IMessageHandler>());
                }
                // ReSharper disable once SuspiciousTypeConversion.Global
                _handlers[receiver].Add((IMessageHandler)coroutineThreadBase);
            }
        }
Exemple #2
0
        public void Unregister(ICoroutineThread coroutineThreadBase)
        {
            var typeName = typeof(IMessageHandler).Name;
            var type     = coroutineThreadBase.GetType();

            foreach (var receiver in GetAllHandledMessageTypes(type, typeName))
            {
                if (!_handlers.ContainsKey(receiver))
                {
                    continue;
                }
                // ReSharper disable once SuspiciousTypeConversion.Global
                _handlers[receiver].Remove((IMessageHandler)coroutineThreadBase);
                if (_handlers[receiver].Count == 0)
                {
                    _handlers.Remove(receiver);
                }
            }
        }