0

XmlSerializerを使用していて、アイテムがリストに追加されるたびに、saveメソッドを呼び出します。

async public void save(List<string> eingabe)
{
    var serializer = new XmlSerializer(typeof(List<string>));

    StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
    StorageFile sampleFile = 
        await storageFolder.CreateFileAsync(speicherPfad, CreationCollisionOption.ReplaceExisting);
    var file = await sampleFile.OpenAsync(FileAccessMode.ReadWrite);

    serializer.Serialize(file.AsStreamForWrite(), eingabe);

    file.Dispose();
}

アプリが起動したら、loadメソッドを呼び出します。

public async Task<List<string>> load()
{
    List<string> ausgabe = new List<string>();
    XmlSerializer serializer = new XmlSerializer(typeof(List<string>));

    StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
    StorageFile sampleFile = await storageFolder.CreateFileAsync(speicherPfad, CreationCollisionOption.ReplaceExisting);

    var file = await sampleFile.OpenAsync(FileAccessMode.Read);
    List<string> speicher = (List<string>)serializer.Deserialize(file.AsStreamForRead());

    file.Dispose();

    return speicher;
}

問題:loadメソッドでは、ファイルは常に空(サイズ= 0)であり、理由がわかりません

4

1 に答える 1

1

おそらくこのオプションが原因です:CreationCollisionOption.ReplaceExisting

saveちなみに、戻るように変更するTaskのは良い考えawaitです。

于 2012-12-20T17:02:57.980 に答える