2009-04-23 15 views
8

Windows ve Mono'da kullanmak istediğim bir C# hizmeti yazıyorum. Sadece Mono ile deneme yapmaya başladım ve hem Windows hem de Mono için çalışan servisi kontrol etmek için ayarları depolamanın en iyi yolunu belirlemeye çalışıyorum.Windows ve Mono'da C# Hizmet Ayarlarını Kaydetme

  1. Ayarlar servis yüklü olduğu dosyaya

    • Artıları: İzinler Windows muhtemelen dosyanın
    • yazma gibi olmaz: Her platform için aynı kodu, düzenleme için
    • Eksileri bulmak kolay Platform depoda
  2. Ayarlar dosyası (% AppData/vb ...)

    • Artıları: kolay
    • Eksileri düzenleme için bulmak, izinlere sahip olacak: daha kolay: Daha her platforma
  3. Küçük veritabanı (? SQLite belki)

    • Artıları işlemek için gerekli kodlama
    • Kodları kaydetmek ve kaydetmek için kod yazınız. Cons: Manuel olarak düzenlemek kolay değil, aynı yerde nerede saklanabilir

Hangisi en iyisi, yoksa daha iyi bir öneriniz var mı?
Ayrıca, ayarların daha kolay değiştirilmesine izin vermek için bir komut satırı istemcisi de yazacağım, bu ayarların nasıl kaydedileceğini değiştirecek mi?

cevap

5

IsolatedStorage'a bir göz atın. Bu, uygulama başına depolama sağlamak için bir API'dir, .NET'te yerleşiktir ve Mono'da desteklenir. API, çerçeve tarafından yönetilen bir konumda depolanan dosyalarda IO dosyası sağlar: Mono'da bir ~/.isolatedstorage dizini olur, Windows'da kullanıcının Belgeleri ve Ayarları'nda bir yerde olur.

Bu API ile, işletim sisteminizin özellikleri veya izinleri hakkında endişelenmenize gerek kalmadan ayar dosyanızı koruyabilirsiniz.

+0

Mono'da IsolatedStorage'ın hiçbir fikri uygulanmadı. Görünüşe göre SQLite ADO.NET'in, planlı olarak yapılması planlanan SquireStorage desteği var. – Samuel

+0

IsolatedStorage, bir mağazanın birden çok projede paylaşılmasına izin vermiyor gibi görünüyor. Bu tür yapmak istediklerimi öldürür. Meclisi hareket ettirirseniz de ölür. – Samuel

+0

Emin misin? IsolatedStorageScope.User için yalıtılmış depolama deposu isterseniz? Bunu denemedim ama işe yarayabilir ... –