为什么XmlSerializer.Serialize在测试阶段保存文件,但不保存已发布的版本

时间:2016-12-29 10:49:11

标签: c# windows-phone-8

我已使用此page

上的以下功能
public static void WriteToXmlFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
{
    TextWriter writer = null;
    try
    {
        var serializer = new XmlSerializer(typeof(T));
        writer = new StreamWriter(filePath, append);
        serializer.Serialize(writer, objectToWrite);
    }
    finally
    {
        if (writer != null)
            writer.Close();
    }
}

我用它来调用它:

WriteToXmlFile<List<channel>>("channels.txt", channelList);

这是为了将电视频道列表保存到本地文件中,以便稍后重新打开,以便将其显示给用户。

这在我测试时非常有效:我正在手机上卸载任何以前的版本,进行干净的构建然后在手机上进行部署,然后直接在手机上启动应用程序。

然后我从商店下载了应用程序并且不再发生保存(我没有错误,因为我发现了所有异常)。

我可以知道为什么列表不再保存已发布的版本? 我错过了任何能力吗? 或者是文件路径(实际上我没有提供)或我用来保存文件的方法不正确?

我可以阅读有关隔离存储的内容,我应该使用它吗?

我的应用程序适用于Windows Phone 8.x及更高版本

该文件仅供应用程序使用

文件中最多可放10个项目,因此保存速度快(对异步保存方法没有太大要求)

谢谢

1 个答案:

答案 0 :(得分:1)

我使用的是IsolatedStorage(这个网站上也有样本),我的问题就消失了。

我真的不知道我使用的方法在哪里放文件,但绝对不是正确的方法。