2009-05-21 5 views
1

Mon application stocke les informations de contact. L'utilisateur peut les modifier via DataGridView et ainsi de suite. Je sauve les informations de contact par classe sérialisable qui ressemble à ce que:Quel est le meilleur format pour stocker le type de contact/adresse d'information sans base de données?

[Serializable] 
public class Contact : INotifyPropertyChanged 
{ 
    private string _fName; 
    private string _lName; 
    private string _pNumber; 

    public event PropertyChangedEventHandler PropertyChanged; 

    public Contact(string firstName, string lastName, string phoneNumber, bool fromOutlook){...} 

    public Contact(){...} 

    public string FirstName{...} 
    public string LastName{...} 
    public string PhoneNumber{...} 

    private void NotifyPropertyChanged(string name){...} 
} 

Mais je suis affraid ce n'est pas le format le plus efficace/pur (si je viens sérialiser la classe). Est-ce que quelqu'un a eu une tâche similaire et l'a résolu d'une meilleure manière?

+0

Quel est le problème avec la façon dont il est sérialisé? – BFree

Répondre

1

Il n'y a rien de mal à utiliser Serializable; C'est un excellent moyen d'obtenir un objet depuis et vers le disque. Si vous craignez que le format ne soit pas humain, utilisez XmlSerializer à la place. Je recommande fortement VCard pour les raisons suivantes:

1

il existe un certain nombre de formats relativement standard pour les entrées de carnet d'adresses (vCard nous vient à l'esprit); La sérialisation à l'un d'entre eux est probablement votre meilleur pari si vous êtes complètement opposé à l'utilisation d'une base de données.

1

Si vous êtes certain que votre application est la seule à consommer ces classes sérialisées, le sérialiseur BinaryFormatter les stockera de manière relativement compacte. Si vous avez d'autres utilitaires qui auraient avantage à les lire/écrire, je vous suggère de les sauvegarder en XML, soit avec SoapFormatter, soit avec XML Serializer.

3

1.) Protocole universel pour les contacts. Rend vos données immédiatement consommables avec d'autres applications compatibles VCard. comme MS Outlook.

2.) Peut être transféré sur les téléphones mobiles.

3.) Peut être utilisé pour la synchronisation. [vérifiez SyncML Contacts Sync.]

4.) Vous n'avez pas besoin d'écrire un parseur VCard. Il suffit de vérifier cela here Lien Txt: http://www.codeproject.com/KB/dotnet/vCardReader.aspx

5.) Sérialisable.