У меня есть плагин, которому нужен доступ к определенной информации, чтобы правильно заполнить его элементы графического интерфейса. Однако этот плагин не должен знать обо всех других плагинах, поэтому я хочу, чтобы он запрашивал эту информацию из приложения.
В подобных ситуациях я всегда создаю интерфейс для обмена данными, а затем передаю этот интерфейс плагинам, чтобы они могли запрашивать данные, когда это необходимо. Однако недавно я начал использовать набор инструментов MVVM Light, потому что в нем есть такие замечательные функции, как RelayCommand
и Messenger
. В этом случае я полностью вижу использование Messenger - плагинам не нужен интерфейс, потому что они могут просто использовать Messenger.Default.Send<MyDataRequestMessage>(...)
. Пока они регистрируют обработчик приема, все в порядке ... или нет?
Какому методу вы бы предпочли и почему?