La condivisione di dati tra due applicazioni

come questo

public class MyClass { 
  public static instance = new MyClass();
 private List<int> idList; 
}

.
Sto usando questa classe in due diverse finestra di applicazione. come questo MyClass.instance.IdList.Add(1); Tutti i dati idList io sono la memorizzazione di file e il recupero di informazioni dal file. Sto aggiungendo valore alla idList in una sola app, e io sono il recupero idList info in un altro app. ma non è mostrando idList contenuto nella seconda applicazione che viene aggiunto dalla prima applicazione. Come ottenere questo?

  • Si prega di chiarire la tua domanda è molto difficile capire quello che stai dopo
  • Vuoi dire che vuoi un cross process List<int>, o semplicemente accedere all’elenco stesso da due finestre diverse?
  • ya. Voglio accedere ad una stessa Lista, da due diverse applicazioni a finestre
InformationsquelleAutor jolly | 2009-12-23

 

9 Replies
  1. 0

    perché non si sta utilizzando xml come un mediatore tra due applicazioni. Utilizzo di XML per la comunicazione.

    • XML è un po ‘ pesante per un elenco di ID.
    • sì ho usato il file XML per memorizzare i dati nell’elenco. E ho deserializzato nella seconda applicazione. ora funziona bene.
    • Ma la mia esperienza non è buona, con Coda di Messaggi. Un po ‘ di tempo pick dati in modo casuale dalla coda.
  2. 4

    Qui ci sono alcuni modi per condividere i dati tra le applicazioni:

    WCF sarebbe il mio modo preferito per fare questo e vorrei aggiungere qualche spiegazione qui

    1) l’Utilizzo di WCF
    – Ospitare un servizio WCF con le seguenti funzionalità [Sforzo: Moderato]

    //Si noti l’utilizzo di Publisher -Subscriber modello qui (ogni app iscriversi al servizio, il servizio potrebbe essere ospitato da tutte le applicazioni in alcuni endpoint cioè il saldo.tubo://localhost/NotificationService (Dal più applicazioni cercherà di ospitare lo stesso servizio solo uno sarebbe successo e che è esattamente quello che si desidera)

    void Subscribe(object);
    void Unsubscribe(object);

    //Qualsiasi client che desiderano aggiungere un oggetto alla lista sarà chiamata Aggiungere

    void Add(object objectToAdd);

    //Scorrere ogni sottoscrizione app e inviare una notifica una lista cambiato

    void Notify();

    //Restituisce lo stato corrente della lista

    IEnumerable<object> GetYourList();

    2) l’Uso di Appunti [Sforzo: Semplice]

    3) Uso di File di sistema, & l’ascolto della notifica di modifica del file
    [Sforzo: Semplice]

    4) File Mappati In Memoria [Sforzo: Semplice-Moderato]

  3. 3

    Forse sono consapevoli di questo, ma i tipi dichiarati static locali per un singolo processo (applicazione). Leggendo il tuo esempio sembra che si prevede che l’istanza statica per essere condivisa e accessibile tra le applicazioni. Questo non è il caso.

    Un modo standard di fare ciò che è necessario è quello di creare una 3 ° applicazione/processo che espone sincronizzare l’accesso a un elenco di altre applicazioni possono aggiungere/rimuovere elementi dal.

    • +1 per la “statica” di spiegazione. Penso che quello jolly stava cercando di fare…
  4. 0

    Messaggio di Coda è il modo migliore per comunicare.
    Tuttavia assegno che è necessario attivare il “Microsoft Message Queue” componente prima di poter utilizzare il servizio.

    Inoltre, siamo in grado di ottenere in tempo reale lo scambio dei dati e si crea un evento, se configurato per farlo. e FIFO modo per accedere al messaggio consentirà di processo di ogni messaggio, senza mancare ogni singolo messaggio.

  5. 0

    Nel mio caso, ho avuto 2 applicazione

    1. Servizio WCF applicazione basata su
    2. Applicazione di Windows

    Avevo usato Coda di Messaggi per superare questa condivisione di dati problema

    • Aggiungere quanto mai coda che si desidera.
    • Il suo blocco di leggere, quindi l’applicazione non è sovraccarico e porco di la CPU.
    • Abbastanza affidabile, senza perdita di Dati.
    • Aggiungere l’Intestazione, con Ogni tipo di dati, per riconoscere che tipo di dati è questo.

    Istruzioni per l’uso :

    • Creare code private.
    • inserire i dati in esso dal lato client.
    • un altro lato di leggere e analizzare.

Lascia un commento