Не уверен, что это было дизайнерское решение, но IMessenger.Send, похоже, отсутствует перегрузка, которая принимает токен
Предполагая, что под "токеном" вы подразумеваете строку, которая идентифицирует что-то в сообщении, вы можете сделать несколько вещей.
Вы можете использовать класс NotificationMessage в качестве отправляемого сообщения.
Messenger.Default.Send(new NotificationMessage("Token"));
Если вы хотите использовать что-то кроме строки в качестве токена, вы можете использовать NotificationMessage.
Messenger.Default.Send(new NotificationMessage<IToken>(new Token()));
Вы можете создать свой собственный класс сообщений и использовать его. Это позволяет вам регистрироваться только для сообщений вашего пользовательского типа. Это то, что я рекомендую.
public class ErrorMessage : GenericMessage<Exception> { public ErrorMessage(Exception content) : base(content) { } public ErrorMessage(object sender, Exception content) : base(sender, content) { } public ErrorMessage(object sender, object target, Exception content) : base(sender, target, content) { } }