Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XMLSerializer: почему не работает десериализация? 
V
    Опции темы
cforest
Дата 21.11.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 7.11.2009

Репутация: нет
Всего: нет



  Добрый день. Работаю с XMLSerializer (сохраняю опции программы в виде XML-файла).
Сериализация работает, десериализация - нет.

Вот код:

Код

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
using System.Windows.Forms;
using System.Xml.Serialization;

namespace XMLAsk
{
    class Test
    {
        public static string ConfigFileName = "C:\\Work\\TMP\\Config.xml";

        public static void Main()
        {

            MyOptions myOptions = new MyOptions();
            myOptions.Title = "Hello, world!";
            myOptions.Rating = 15;

            SerializeToXML(myOptions);

            MyOptions myOptions2 = new MyOptions();
            DeserializeFromXML(myOptions2);

            MessageBox.Show(myOptions2.Title);


        }

        public static void SerializeToXML(MyOptions myOptions)
        {
            
            XmlSerializer serializer = new XmlSerializer(typeof(MyOptions));
            TextWriter textWriter = new StreamWriter(ConfigFileName);
            serializer.Serialize(textWriter, myOptions);
            textWriter.Close();

        }

        public static void DeserializeFromXML(MyOptions myOptions2)
        {
            
            XmlSerializer deserializer = new XmlSerializer(typeof(MyOptions));
            TextReader textReader = new StreamReader(ConfigFileName);
            myOptions2 = (MyOptions)deserializer.Deserialize(textReader);
            textReader.Close();

        }
    }

    public class MyOptions
    {
       

        private string title;
        private int rating;
       
        public string Title
        {
            get { return title;  }
            set { title = value; }
        }

        public int Rating
        {
            get { return rating; }
            set { rating = value;}
        }
       
    }

}



После выполнения этого кода создается файл Config.xml. C его содержимым все в порядке: что записал, то и вижу:

Код

<?xml version="1.0" encoding="utf-8" ?> 
- <MyOptions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Title>Hello, world!</Title> 
  <Rating>15</Rating> 
  </MyOptions>



Но когда я выполняю десериализацию и с помощью  MessageBox.Show вывожу myOptions2.Titlе (см. код выше), то получаю пустую строку.

Вопрос: почему пустая строка, а не "Hello, world!"? 

Пасиб.

------------------

Разобрался:

Код

public static MyOptions DeserializeFromXML(MyOptions myOptions2)
        {
            
            XmlSerializer deserializer = new XmlSerializer(typeof(MyOptions));
            TextReader textReader = new StreamReader(ConfigFileName);
            myOptions2 = (MyOptions)deserializer.Deserialize(textReader);
            textReader.Close();
            return (myOptions2);

        }




Это сообщение отредактировал(а) cforest - 21.11.2009, 18:10
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.