2009-04-23 2 views
8

Sto scrivendo un servizio C# che voglio essere in grado di utilizzare su Windows e Mono. Ho appena iniziato a sperimentare con Mono e sto cercando di determinare il modo migliore per archiviare le impostazioni per controllare il servizio che funziona sia per Windows che per Mono. il fileMemorizzazione delle impostazioni del servizio C# in Windows e Mono

  1. Impostazioni in cui è installato il servizio

    • Pro: Stesso codice per ogni piattaforma, facile da trovare per l'editing
    • Contro: Autorizzazioni di Windows probabilmente non sarà come la scrittura nel file
    • file di
  2. Impostazioni in deposito piattaforma (% appdata,/etc, ...)

    • Pro: Will avere le autorizzazioni, più facili da trovare per l'editing
    • Contro: Altro codice necessaria per gestire ogni piattaforma
  3. piccolo database (SQLite forse?)

    • Pro: Più facile da scrivere il codice per memorizzare e recuperare le impostazioni
    • Contro: Non facile da modificare manualmente, lo stesso problema di dove memorizzare

Quale pensi sia il migliore o hai un suggerimento migliore?
Probabilmente scriverò anche un client della riga di comando per consentire una più semplice modifica delle impostazioni, cambierà la modalità di memorizzazione delle impostazioni?

risposta

5

Dai uno sguardo allo IsolatedStorage. Questa è un'API per fornirti storage per applicazione, è integrata in .NET ed è supportata in Mono. L'API fornisce il file I/O su file che sono archiviati in una posizione gestita dal framework: in Mono sarà una directory ~/.isolatedstorage, in Windows sarà da qualche parte nei documenti e nelle impostazioni dell'utente.

Con questa API, è possibile gestire il file delle impostazioni senza doversi preoccupare delle specifiche del sistema operativo o delle autorizzazioni.

+0

Non avevo idea di IsolatedStorage implementato in Mono. Sembra che SQLite ADO.NET abbia pianificato il supporto di IsolatedStorage. – Samuel

+0

IsolatedStorage non sembra consentire la condivisione di un negozio su più progetti. Questo tipo di uccide quello che voglio fare. Muore anche se muovi l'assemblea. – Samuel

+0

Sei sicuro? Cosa succede se si richiede l'archivio di archiviazione isolato per IsolatedStorageScope.User? Non ho provato questo, ma potrebbe funzionare ... –