С чего вы взяли что это подходы для работы с диалогами?
Messenger - паттерн для передачи сообщений(событий) из одной вью модели в другую.
Service Dialog - сервис который создает разные диалоговые окна?
Dependency Injection - одна из реализаций принципа Inversion of Control (инверсия управления). Например вашей MainViewModel надо использовать Messenger и ServiceDialog. Тогда вы делаете инъекцию зависимостей, например, через конструктор.
public MainViewModel(Messenger messenger, ServiceDialog serviceDialog){...}
IoC-контейнер подставит зависимости сам.
Так я определяю сказанные вами понятия. Теперь вопрос - что мешает использовать это все вместе?