2009-05-21 46 views
1

我的應用程序正在存儲聯繫信息。用戶可以通過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){...} 
} 

但我affraid這不是最有效的/整齊的格式(如果我只是序列化類)。 有沒有人有類似的任務,並以更好的方式解決它?

+0

它的序列化方式有什麼問題? – BFree 2009-05-21 17:22:30

回答

1

使用Serializable沒什麼問題;這是從磁盤獲取對象的好方法。如果您擔心可以使用可讀的格式,請改爲使用XmlSerializer

1

有很多相對標準的地址簿條目格式(vCard想到);序列化到其中的一個可能是你最好的選擇,如果你不想使用數據庫。

1

如果您確定您的應用程序是唯一需要使用這些序列化類的應用程序,BinaryFormatter序列化程序將會非常緊湊地存儲它們。如果你可能有其他軟件實用程序可以從讀/寫這些東西中受益,我建議你將它們轉儲爲XML,或者使用SoapFormatter或XML Serializer。

3

我強烈建議VCard出於以下原因。

1.)聯繫人通用協議。立即使您的數據可與其他VCard兼容應用程序兼容。像MS Outlook一樣。

2.)可以在手機上轉移。

3.)可用於同步。 [檢查SyncML聯繫人同步]

4.)您不需要自己編寫VCard解析器。請檢查一下here Link Txt:http://www.codeproject.com/KB/dotnet/vCardReader.aspx

5.)可串行化。

相關問題