1

私はWP7アプリに取り組んでいます。アプリには、いくつかの XML ファイルがあります。読み書き可能なものもあれば、読み取り専用のものもあります。ここでのオプションは何ですか? 分離ストレージ? リソースとして埋め込む?

私も知る必要があります...

  1. どちらからでも XML を XElements にロードするにはどうすればよいですか?
  2. XElement からどちらかに保存するにはどうすればよいですか?
4

2 に答える 2

2

書き込みアクセスには、IsolatedStorage を使用する必要があります。ファイルが存在するかどうかを確認し、IsolatedStorage から読み込むことができます。そうでない場合は、リソースから読み込みます。読み取り専用アクセスの場合は、リソースからロードするだけです。xml ファイルをプロジェクトに追加し、ビルド アクションがコンテンツであることを確認します。

XDocument doc = LoadFromIsolatedStorage(name);
if (doc == null)
{
    doc = LoadFromResource(name);
}

////////////////////////////

public static XDocument LoadFromResource(string name)
{
    var streamInfo = Application.GetResourceStream(new Uri(name, UriKind.Relative));
    using(var s = streamInfo.Stream)
        return XDocument.Load(s);

}

public static XDocument LoadFromIsolatedStorage(string name)
{
    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    {
        if (store.FileExists(name))
        {
            using(var stream = store.OpenFile(name,FileMode.Open))
                return XDocument.Load(stream);
        }
        else
            return null;
    }
}

public static void SaveToIsolatedStorage(XDocument doc, string name)
{
    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    {
        var dir = System.IO.Path.GetDirectoryName(name);
        if (!store.DirectoryExists(dir))
            store.CreateDirectory(dir);
        using (var file = store.OpenFile(name, FileMode.OpenOrCreate))
            doc.Save(file);
    }
}
于 2010-08-23T17:18:56.053 に答える
0

念のため、すべてのドキュメントを含めて「xap」を「exe」として実行しますか? その場合は、ツール Desklighter ( http://blendables.com/labs/desklighter/ ) を使用できます。

于 2010-08-24T08:12:35.247 に答える