powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Десериализация класса.
5 сообщений из 5, страница 1 из 1
Десериализация класса.
    #38908661
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сериализация проходит отлично. Делаю так:

Код: c#
1.
2.
3.
4.
5.
6.
    public class OrbModel
    {
        public String Name { get; set; }
        [XmlArray]
        public List<Orb> Orbs { get; set; }
    }



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
        public static XDocument GetSerializer(System.Object item)
        {
            StringWriter sw = new StringWriter();
            XmlSerializer xs = new XmlSerializer(item.GetType());
            xs.Serialize(sw, item);
            XDocument ser = XDocument.Parse(sw.GetStringBuilder().ToString());
            return ser;
        }

        public static Object GetDeserializer(String path, System.Object item)
        {
            StreamReader sr = new StreamReader(path);
            XmlSerializer xs = new XmlSerializer(item.GetType());
            return xs.Deserialize(sr);
        }



А вот при десериалицации возникает ошибка:
System.RuntimeType недоступен в силу его уровня защиты. Возможна обработка только общих типов.

Где что поправить надо?
...
Рейтинг: 0 / 0
Десериализация класса.
    #38908668
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,
В GetDeserializer нужно десериализовать XML по контракту и в объект конкретного класса.
...
Рейтинг: 0 / 0
Десериализация класса.
    #38908687
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public static T GetDeserializer<T>(String path)
{
     XmlSerializer serializer = new XmlSerializer(typeof(T));
     StreamReader reader = new StreamReader(path);
     T deserialized = (T)serializer.Deserialize(reader);
     reader.Close();
     return deserialized;
}
...
Рейтинг: 0 / 0
Десериализация класса.
    #38908721
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Axeleron,

Спасибо большое!
...
Рейтинг: 0 / 0
Десериализация класса.
    #38908733
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только reader советую сделать IDisposable.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Десериализация класса.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]