C# XML文档(1.1)中存在错误
尝试反序列化流时出错C# XML文档(1.1)中存在错误,c#,windows-phone-7,silverlight-4.0,C#,Windows Phone 7,Silverlight 4.0,尝试反序列化流时出错 public static AllFlags Load() { IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication(); AllFlags allFlags; //IsolatedStorageFileStream stream = storage.OpenFile(filename, FileMode.Open); StringReade
public static AllFlags Load()
{
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
AllFlags allFlags;
//IsolatedStorageFileStream stream = storage.OpenFile(filename, FileMode.Open);
StringReader stream = new StringReader(filename);
XmlSerializer xml = new XmlSerializer(typeof(AllFlags));
allFlags = xml.Deserialize(stream) as AllFlags;// here There is an error in XML
stream.Close();
stream.Dispose();
return allFlags;
}
如果我从独立存储中打开该文件,没有问题
public static AllFlags Load()
{
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
AllFlags allFlags;
IsolatedStorageFileStream stream = storage.OpenFile(filename, FileMode.Open);
XmlSerializer xml = new XmlSerializer(typeof(AllFlags));
allFlags = xml.Deserialize(stream) as AllFlags;
stream.Close();
stream.Dispose();
return allFlags;
}
我怎样才能打开这个文件
编辑:
我的xml文件“Flags.xml”:
Tag1
名称1
...
A不是从文件中读取,而是从字符串中读取。您正在将filename
中的任何内容解析为XML(它不是XML,而是路径)
您可能希望使用以下选项:
xml是什么样子的?嗯。。您是否检查了内部异常的异常?据我记忆,此错误包含的信息比消息所说的要多。我收到另一个错误:尝试访问该方法失败:System.IO.StreamReader..ctor(System.String)请参见此处:我没有注意到您的
windows-phone-7
标记。我想在您的情况下,IsolatedStorage
是一个不错的选择。当我使用隔离存储时,我得到了一个错误:不允许对IsolatedStorageFileStream执行操作。我想它找不到文件。@YaroslavShabanov-euh。。。在您的问题中,您指出它在使用隔离存储文件流时有效。是的,如果文件在隔离存储中,它也有效。我的意思是,如果首先在独立的存储中创建并保存文件,那么它将毫无问题地打开。但我有一个文件,我已经把它放进了项目中,它不在独立的存储中。
<?xml version="1.0"?>
<AllFlags>
<Flags>
<Flag>
<Tag>Tag1</Tag>
<Name>Name1</Name>
</Flag>
...
</Flags>
</AllFlags>
StreamReader stream = new StreamReader(filename);