public virtual bool AcceptMessage(object source, Message message) { // Apply filters bool accept = true; foreach (var filter in Filters) { accept &= filter.Evaluate(source, message); if (!accept) return false; } return true; }