public bool ShouldAttemptDelivery(IMapleMessage message)
        {
            if (message == null)
            {
                return(false);
            }

            if (!(typeof(TMessage).IsAssignableFrom(message.GetType())))
            {
                return(false);
            }

            return(MessageFilter.Invoke(message as TMessage));
        }
        public bool ShouldAttemptDelivery(IMapleMessage message)
        {
            if (message == null)
            {
                return(false);
            }

            if (!(typeof(TMessage).IsAssignableFrom(message.GetType())))
            {
                return(false);
            }

            if (!DeliveryAction.IsAlive)
            {
                return(false);
            }

            if (!MessageFilter.IsAlive)
            {
                return(false);
            }

            return(((Func <TMessage, bool>)MessageFilter.Target).Invoke(message as TMessage));
        }