代码之家  ›  专栏  ›  技术社区  ›  kyrisu

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

  •  1
  • kyrisu  · 技术社区  · 17 年前

    我的应用程序正在存储联系信息。用户可以通过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 回复  |  直到 17 年前
        1
  •  1
  •   Randolpho    17 年前

    使用没有什么问题 Serializable 这是一个很好的方法来获取一个对象和从磁盘。如果您担心使格式可读,请使用 XmlSerialize r 相反。

        2
  •  3
  •   this. __curious_geek    17 年前

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

    1.)联系人通用协议。使您的数据立即消费与其他vCard兼容的应用程序。就像微软的Outlook。

    2.)可以通过手机传输。

    3.)可用于同步。[查看SyncML联系人同步。]

    4.)您不需要编写自己的vCard解析器。看看这个就行了 here 链接TXT: http://www.codeproject.com/KB/dotnet/vCardReader.aspx

    5.)可序列化。

        3
  •  1
  •   Dan Davies Brackett    17 年前

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

        4
  •  1
  •   GWLlosa    17 年前

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