2009-05-21 3 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

答えて

1

Serializableを使用しても問題はありません。ディスクとの間でオブジェクトを取得するのに最適な方法です。書式を人間が読めるようにすることを心配している場合は、代わりにXmlSerializerを使用してください。

1

アドレス帳のエントリには、比較的標準的なフォーマットがいくつかあります(vCardが気に入っています)。あなたがデータベースを使って死んでしまった場合、そのうちの1つにシリアライズするのが最善の策です。

1

これらのシリアライズされたクラスを使用する必要があるのはあなたのアプリケーションだけであることが確かであれば、BinaryFormatterシリアライザはそれらを非常にコンパクトに保存します。これらのものの読み書きに役立つ他のソフトウェアユーティリティがある場合は、SoapFormatterまたはXMLシリアライザを使用してそれらをXMLとしてダンプすることをお勧めします。

3

以下の理由から、VCardを強くお勧めします。

)1.連絡先のためのユニバーサルプロトコル。他のVCard互換アプリですぐにデータを消耗させることができます。 MS Outlookのように。

2.)携帯電話で転送することができます。

3.)同期に使用できます。 [SyncML連絡先の同期をチェックアウト]

4.)独自のVCardパーサーを書く必要はありません。これをチェックしてくださいhere リンクTxt:http://www.codeproject.com/KB/dotnet/vCardReader.aspx

5.)シリアライズ可能。

関連する問題