Можно ли отправить только токен через MVVM Light Messenger?
Я рефакторинг некоторого кода, который первоначально использовал Messenger
в MVVM Foundation, чтобы теперь использовать Messenger
в MVVM Light Toolit. Единственное, для чего я не могу найти эквивалента, - это случай, когда все, что вы хотите сделать, - это отправить токен (то есть токен действует как уникальный идентификатор сообщения и самого сообщения).
Оригинальный код (Фонд MVVM) - одна строка делает все
// send code
mvvmFoundationMessenger.NotifyColleagues("QuestionTimedOut");
// register code
mvvmFoundationMessenger.Register(
"QuestionTimedOut",
() => UpdateOnQuestionTimedOut());
Новый код (MVVM Light) - есть ли более элегантное решение, чем это?
// send code
mvvmLightMessenger.Send("QuestionTimedOut", "QuestionTimedOut");
// register code
mvvmLightMessenger.Register<string>(
this,
"QuestionTimedOut",
token => UpdateOnQuestionTimedOut());
Я понимаю, что я мог бы явно новый до NotificationMessage
но это добавило бы еще больше кода.
2 ответа
Хорошая точка зрения. Я положил это в отставание для MVVM Light VNext.
Вы могли бы извлечь из MvvmLight's Messenger
и добавьте свои собственные удобные методы, или вы могли бы добавить Messenger
Методы расширения в классе расширения.