2013-02-06 6 views
5

私が欲しいもの:複雑なデータ型をローミング設定に格納しようとしています。ローミング設定で複合データ型を保存する

Data type not supported

私は試してみました何:

Query q = ...; 
RoamingSettings.Values["query"] = q; 

エラーを与えている:問題は何ですか

public abstract class Query 
{ 
    [DataMember] 
    public Cube Cube { get; private set; } 

    [DataMember] 
    public List<Filter> Filters { get; private set; } 
    [DataMember] 

    public Slicer Slicer { get; set; } 
} 

:これは、次のように私のオブジェクトがどのように見えるかで異なる保存しますコンポジット設定の異なるフィールドにあるQueryクラスのメンバー。しかし、Queryクラスのデータメンバーは、再び異なるクラスのオブジェクトであるため、composite.Values ["setting"]に格納することはできません。

windows 8 app roaming storage with custom classを参照してください。その質問は、複合設定を使用して回答されましたが、私のものには適用されません。

どうすればいいですか?あなたはそれがために何を意味するかは非常にではありませんRoamingSettingsへカスタムオブジェクトのコレクションを突き出すしようとしているように

答えて

0

Ankush、

が見えます。ローカル/ローミング設定は通常レジストリに保存され、単純な名前と値のペアを意味します。

これはどうでしょうか。オブジェクトモデル全体をファイルとして保存して、ファイルを平滑化しますか?このようにして、必要に応じてデータをシリアライズ/デシリアライズし、オブジェクトモデルの水和/脱水を簡単に行うことができます。また、複数のユーザーデバイス間で同期させるために、フラットコンテンツをローミングフォルダに保存することもできます。必要に応じてカスタムオブジェクトのプロパティに注釈を付け、DataContractSerializerを使用してデータをフラット化/アンフラット化し、XMLファイルをローミングフォルダに保持するだけです。瞬間的なクラウド同期には依存しないでください。 Windowsは、ローミングフォルダのファイルを機敏に同期します。

このMSDNのクイックスタートは役立つはず:

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh700362.aspx

をありがとう!

関連する問題