DataContractSerializer не десериализуется правильноC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 DataContractSerializer не десериализуется правильно

Сообщение Anonymous »

Код: Выделить всё

using System;
using System.Runtime.Serialization;
using System.Xml;
using System.IO;
using System.Collections.Generic;

[DataContract(Name = "Book", Namespace = "")]
public class Book
{
[DataMember] public string Title { get; set; }
[DataMember] public string Author { get; set; }
[DataMember] public int Year { get; set; }
}

[DataContract(Name = "Library", Namespace = "")]
public class Library
{
[DataMember] public string Name { get; set; }
[DataMember] public List Books { get; set; }
}

public class Program
{
static string xml = @"

Central Library


The Great Gatsby
F. Scott Fitzgerald
1925


To Kill a Mockingbird
Harper Lee
1960


";

static void Main(string[] args)
{
try
{
Library library = DeserializeLibrary(xml);
Console.WriteLine($"Deserialized Library: {library.Name}");
foreach (var book in library.Books)
{
Console.WriteLine($"Book: {book.Title} by {book.Author} ({book.Year})");
}
}
catch (Exception e)
{
Console.WriteLine($"Deserialization failed: {e.Message}");
Console.WriteLine($"Stack trace: {e.StackTrace}");
}

Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}

/// 
/// Deserializes the XML string into a Library object using DataContractSerializer
/// 
static Library DeserializeLibrary(string xmlString)
{
DataContractSerializer serializer = new DataContractSerializer(typeof(Library));
using (StringReader stringReader = new StringReader(xmlString))
using (XmlReader xmlReader = XmlReader.Create(stringReader))
{
return (Library)serializer.ReadObject(xmlReader);
}
}
}
Десериализованная библиотека: Центральная библиотека
Ошибка десериализации: ссылка на объект не установлена ​​на экземпляр объекта
Трассировка стека: в Program.Main (System.String[] args) [0x0002a] в:0
Я постоянно сталкиваюсь с этой проблемой и не понимаю, почему. Я читал инструкцию за инструкцией, но никаких исправлений не было. Как мне заставить это правильно сериализовать этот список книг?
Он должен напечатать список книг

Подробнее здесь: https://stackoverflow.com/questions/791 ... -correctly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • DataContractSerializer не десериализуется правильно
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • DataContractSerializer не десериализуется правильно
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Почему System.Version в строке JSON не десериализуется правильно?
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Поток только для записи — получите количество записанных байт с помощью DataContractSerializer.
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • DataContractSerializer обрабатывает отсутствующие значения перечисления во время десериализации
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»