代码之家  ›  专栏  ›  技术社区  ›  Shlomo

如何在Windows Phone xap部署中包含XML数据?

  •  1
  • Shlomo  · 技术社区  · 15 年前

    我正在开发WP7应用程序。该应用程序将有几个XML文件。有些是读写的,有些是只读的。我有什么选择?隔离存储?作为资源嵌入?

    1. 如何将XML加载到XElements中?
    2. 我如何从一个XElement保存到另一个?
    2 回复  |  直到 15 年前
        1
  •  2
  •   Kris    15 年前

    对于写访问,您需要使用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);
        }
    }
    
        2
  •  0
  •   Krish Silva    15 年前

    想一想,你想运行“xap”作为一个“exe”与所有文件包括在内吗?如果是这样,您可以使用工具Desklighter( http://blendables.com/labs/desklighter/

    推荐文章