2013-08-07 2 views
1

Ошибка возникает, когда я пытаюсь десериализовать поток.В документе XML есть ошибка (1.1)

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":

<?xml version="1.0"?> 
    <AllFlags> 
     <Flags> 
     <Flag> 
      <Tag>Tag1</Tag> 
      <Name>Name1</Name> 
     </Flag> 

... 

     </Flags> 
    </AllFlags> 
+0

Что делает XML выглядеть? – Sayse

+0

Хм .. вы проверили исключение для внутренних исключений? Из того, что я помню, эта ошибка содержит больше информации, чем то, о чем говорится в сообщении. – Sayse

ответ

0

StringReader не читает из файла, но из строки. Вы разбираете все, что находится в filename как XML (это не XML, а путь).

Вы, вероятно, хотите использовать StreamReader вместо:

StreamReader stream = new StreamReader(filename); 
+0

Теперь я получаю еще одну ошибку: Ошибка при попытке доступа к методу: System.IO.StreamReader..ctor (System.String) –

+0

См. Здесь: http: // stackoverflow.com/questions/10719100/in-c-sharp-on-windows-phone-attempt-to-access-the-method-failed-system-io-files Я не заметил ваш 'windows-phone-7' тег. Я думаю, что «Изолированная инвентарь» - это способ пойти в вашем случае. –

+0

Когда я использую изолированное хранилище, я получаю ошибку: Операция не разрешена на IsolStorageFileStream. Я думаю, что он не может найти файл. –

Смежные вопросы