MVVMLight Messenger не может отправить пустое сообщение - PullRequest
1 голос
/ 15 февраля 2012

Я использую MVVMLight в Silverlight 5. Кто-нибудь знает, почему он не может отправить пустое сообщение?

Я использую Send (сообщение TMessage)

Messenger.Default.Send (null);

Как правило, если моделям представления необходимо общаться друг с другом, разве это не один из способов сделать это?Это выглядит странно, что я не могу отправить пустое сообщение.В моем случае у меня есть объект Map, который необходимо предоставить моделям представления.

Спасибо.

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

В бета-версии MVVM Light V4 была введена ошибка регрессии, приводящая к сбою пустых сообщений с исключением NullReferenceException. Эта ошибка будет исправлена ​​как можно скорее.

Ура, Laurent

0 голосов
/ 15 февраля 2012

Я не знаком с конкретной библиотекой, о которой идет речь, но если вы вызываете метод с универсальным параметром, вы не можете просто передать ноль, потому что нуль означает «ничто» и ему не нужен особый вид ничего. Поэтому для такого метода, как void Send<TMessage>(TMessage messgae), вам нужно сделать что-то вроде:

Send<string>(null);

или

Send((string)null);

Если впоследствии вы получите исключения во время выполнения (например, NullArgumentException), то вы можете подумать об определении типа NoMessage с каким-либо поведением по умолчанию / без параметров, которое вы хотите инкапсулировать (см. Шаблон нулевого объекта ).

...