没有数据库存储联系人/地址类型信息的最佳格式是什么?

时间:2009-05-21 17:19:08

标签: c# serialization data-structures

我的应用程序正在存储联系信息。用户可以通过DataGridView等编辑它们。我通过可序列化的类保存这些联系信息,如下所示:

    [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){...}
}

但是我担心它不是最有效/最好的格式(如果我只是序列化这个类)。 有没有人有类似的任务并以更好的方式解决了它?

4 个答案:

答案 0 :(得分:3)

我强烈推荐VCard,原因如下。

1。)联系人的通用协议。使用其他兼容VCard的应用程序使您的数据立即消耗殆尽。像MS Outlook。

2.)可以在手机上传输。

3.。)可用于同步。 [查看SyncML Contacts Sync。]

4.。)您不需要自己编写VCard解析器。只需查看here 链接文字:http://www.codeproject.com/KB/dotnet/vCardReader.aspx

5.)可序列化。

答案 1 :(得分:1)

地址簿条目有许多相对标准的格式(vCard可以想到);序列化到其中一个可能是你最好的选择,如果你已经决定使用数据库了。

答案 2 :(得分:1)

如果您确定您的应用程序是唯一需要使用这些序列化类的应用程序,则BinaryFormatter序列化程序将非常紧凑地存储它们。如果您可能有其他软件实用程序可以从读/写这些内容中受益,我建议您使用SoapFormatter或XML Serializer将它们转储为XML。

答案 3 :(得分:1)

使用Serializable没有错;这是一个让对象进出磁盘的好方法。如果您担心格式是人类可读的,请改用XmlSerializer