代码之家  ›  专栏  ›  技术社区  ›  Sebastian Gray

如何在XNA 4中读取Windows Phone 7的TXT文件?

  •  2
  • Sebastian Gray  · 技术社区  · 14 年前

    我看了一下前面的问题,但是对于XNA 4,对于Windows Phone 7项目,这似乎不起作用: XNA Framework Importers

    我一直在尝试使用:

    string line; 
    using (StreamReader sr = new StreamReader("credits.txt"))
    {
        while ((line = sr.ReadLine()) != null)
        {
             //reads line by line until eof        
             //do whatever you want with the text
        }
    }
    

    `

    但这将引发System.MethodAccessException“尝试访问方法失败:System.IO.StreamReader..ctor(System.String)”。

    我需要考虑使用IsolatedStorage来代替它吗?

    编辑:请注意,我正在尝试加载一个预先准备好的文件,而不是保存正在运行的应用程序的设置。例如,一个包含学分的文本文件,我只能在运行时读取,但需要能够在设计时进行编辑。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Sebastian Gray    14 年前

    找到了;我可以在不使用isolatedStorage的情况下做到这一点,只需要使用这样的XML文件:

    <?xml version="1.0" encoding="utf-8" ?>
    <XnaContent>
      <Asset Type="System.String">
        <credit>
          Firece Game Hunting
    
          Developer : Sebastian Gray
    
          Deer (CC) : Martin Pettitt
          http://www.flickr.com/photos/mdpettitt
    
        </credit>
      </Asset>
    </XnaContent>
    

    然后像这样加载XML文件:

    public string LoadFromFile()
    {
        using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create("XMLFile1.xml"))
        {
            reader.MoveToContent();
            reader.ReadToFollowing("credit");
            credits = reader.ReadInnerXml();
        }
        return credits;
    }
    

    XML文件可以添加到普通项目(而不是内容项目),并将生成操作设置为“内容”,将“复制到输出”目录设置为“始终复制”。

        2
  •  0
  •   Lukasz Madon    14 年前

    我需要考虑使用IsolatedStorage来代替它吗?

    是的,每个应用程序(操作系统应用程序除外)都需要使用IsolatedStorage将数据存储在物理内存中,或者您可以使用可能的服务来破坏数据。

    IsolatedStorage example

        3
  •  0
  •   Andrew Russell    14 年前

    为什么不写一个内容管道扩展,让内容管理器担心它呢?其实很简单。 This MSDN article explains how .

    Here's a blog post 这提供了一个极好的高级概述。