In un'applicazione MVVM ho bisogno di utilizzare alcuni servizi che sono persistenti, ad es. servizi di rete come P2P e WCF in cui il principale "motore" o endpoint del server deve rimanere attivo durante la vita della mia applicazione. Attualmente li ho codificati in singleton che riassumono la funzionalità, usando internamente l'istanza del motore o del server.
Un altro esempio è una coda di messaggi centrale (come un ciclo principale / BlockingCollection) in cui ho bisogno di accodare varie attività che devono essere elaborate in sequenza.
Come dovrei definire e accedere a tali servizi in un contesto MVVM? Ho letto del modello del localizzatore di servizi ma questo e i singleton sono spesso descritti come anti-pattern?