books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

{

  public class Person

  {

    // Открытое поле.

    public bool IsAlive = true;

    /// Закрытое поле.

    private int PersonAge = 21;

    // Открытое свойство/закрытые данные.

    private string _fName = string.Empty;

    public string FirstName

    {

      get { return _fName; }

      set { _fName = value; }

    }

    public override string ToString() =>

    $"IsAlive:{IsAlive} FirstName:{FirstName} Age:{PersonAge} ";

  }

}

В заключение модифицируйте содержимое файла

Program.cs
, добавив следующий стартовый код:

using System;

using System.Collections.Generic;

using System.IO;

using System.Text.Json;

using System.Text.Json.Serialization;

using System.Xml;

using System.Xml.Serialization;

using SimpleSerialize;

Console.WriteLine("***** Fun with Object Serialization *****n");

// Создать объект JamesBondCar и установить состояние.

JamesBondCar jbc = new()

{

  CanFly = true,

  CanSubmerge = false,

  TheRadio = new()

     {

       StationPresets = new() {89.3, 105.1, 97.1},

       HasTweeters = true

     }

};

Person p = new()

{

  FirstName = "James",

  IsAlive = true

};

Итак, все готово для того, чтобы приступить к исследованию сериализации XML и JSON.

Сериализация и десериализация с помощью XmlSerializer

 Пространство имен

System.Xml
предоставляет класс
System.Xml.Serialization.XmlSerializer
. Этот форматер можно применять для сохранения открытого состояния заданного объекта в виде чистой XML-разметки. Важно отметить, что
XmlSerializer
требует объявления типа, который будет сериализироваться (или десериализироваться).

Управление генерацией данных XML

Если у вас есть опыт работы с технологиями XML, то вы знаете, что часто важно гарантировать соответствие данных внутри документа XML набору правил, которые устанавливают действительность данных. Понятие действительного документа XML не имеет никакого отношения к синтаксической правильности элементов XML (вроде того, что все открывающие элементы должны иметь закрывающие элементы). Действительные документы отвечают согласованным правилам форматирования (например, поле

X
должно быть выражено в виде атрибута, но не подэлемента), которые обычно задаются посредством схемы XML или файла определения типа документа (Document-Type Definition — DTD).

По умолчанию класс

XmlSerializer
сериализирует все открытые поля/свойства как элементы XML, а не как атрибуты XML. Чтобы управлять генерацией результирующего документа XML с помощью класса
XmlSerializer
, необходимо декорировать типы любым количеством дополнительных атрибутов .NET Core из пространства имен
System.Xml.Serialization
. В табл. 20.12 описаны некоторые (но не все) атрибуты .NET Core, влияющие на способ кодирования данных XML в потоке.

Язык программирования C#9 и платформа .NET5 - _139.png

Разумеется, для управления тем, как

XmlSerializer
генерирует результирующий XML-документ, можно использовать многие другие атрибуты .NET Core. Полные сведения ищите в описании пространства имен
System.Xml.Serialization
в документации по .NET Core.

На заметку! Класс

XmlSerializer
требует, чтобы все сериализируемые типы в графе объектов поддерживали стандартный конструктор (поэтому обязательно добавьте его обратно, если вы определяете специальные конструкторы).

Сериализация объектов с использованием XmlSerializer

Добавьте в свой файл

Program.cs
следующую локальную функцию:

static void SaveAsXmlFormat<T>(T objGraph, string fileName)

{

<b>  // В конструкторе XmlSerializer должен быть объявлен тип.</b>

  XmlSerializer xmlFormat = new XmlSerializer(typeof(T));

  using (Stream fStream = new FileStream(fileName,

    FileMode.Create, FileAccess.Write, FileShare.None))

  {

    xmlFormat.Serialize(fStream, objGraph);

  }

}

Добавьте к операторам верхнего уровня такой код:

SaveAsXmlFormat(jbc, &quot;CarData.xml&quot;);

Console.WriteLine(&quot;=&gt; Saved car in XML format!&quot;);

SaveAsXmlFormat(p, &quot;PersonData.xml&quot;);

Console.WriteLine(&quot;=&gt; Saved person in XML format!&quot;);

Заглянув внутрь сгенерированного файла

CarData.xml
, вы обнаружите в нем показанные ниже XML-данные:

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*