1

Тема: Як серіалізувати struct у .net core ?

як це робити без JavaScriptSerializer ???

2

Re: Як серіалізувати struct у .net core ?

Документацію читали?

Подякували: leofun011

3

Re: Як серіалізувати struct у .net core ?

Можна користати System.Text.Json.Serialization.

4 Востаннє редагувалося Betterthanyou (06.11.2020 15:56:25)

Re: Як серіалізувати struct у .net core ?

Крім стандартних засобів є спеціальні пакети.
Наприклад newtonsoft
https://www.newtonsoft.com/json/help/ht … onvert.htm

Встановлюються через nuget

5

Re: Як серіалізувати struct у .net core ?

leofun01 написав:

Можна користати System.Text.Json.Serialization.

якщьо не обмазати get;set то не буде працювати зі структурами. Потрібно починати з цього.

6

Re: Як серіалізувати struct у .net core ?

cheappi386 написав:

якщьо не обмазати get;set то не буде працювати зі структурами. Потрібно починати з цього.

Якщо хочете готове рішення, то обмазуйте властивостями. Якщо не хочете обмазувати, то пишіть власні методи серіалізації, десеріалізації.

Re: Як серіалізувати struct у .net core ?

leofun01 написав:
cheappi386 написав:

якщьо не обмазати get;set то не буде працювати зі структурами. Потрібно починати з цього.

Якщо не хочете обмазувати, то пишіть власні методи серіалізації, десеріалізації.

А можна з цього моменту з подробицями?
Вже замучився з тими серіалізаторами....то приват не серіалізує ... то вимахуються постійно.
Знайшов один більш менш норм. варіант через DataContractSerializer і Iserializable інтерфейс ітой нормально працює тільки в xml...

8

Re: Як серіалізувати struct у .net core ?

GPT-4 написав:

Щоб серіалізувати структуру (struct) у .NET Core, ви можете використовувати DataContractSerializer або JsonSerializer. Вам не потрібно використовувати JavaScriptSerializer. Якщо ви не хочете створювати властивості з get і set, ви можете використовувати атрибут [DataMember] для полів структури.

Ось приклад серіалізації структури з використанням DataContractSerializer:

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

[DataContract]
public struct MyStruct
{
    [DataMember]
    public int Id;

    [DataMember]
    public string Name;
}

class Program
{
    static void Main(string[] args)
    {
        MyStruct myStruct = new MyStruct { Id = 1, Name = "Тест" };

        DataContractSerializer serializer = new DataContractSerializer(typeof(MyStruct));
        using (MemoryStream ms = new MemoryStream())
        {
            serializer.WriteObject(ms, myStruct);
            ms.Position = 0;
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(ms);
            Console.WriteLine(xmlDoc.OuterXml);
        }
    }
}

А ось приклад серіалізації структури з використанням JsonSerializer:

using System;
using System.Text.Json;

public struct MyStruct
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        MyStruct myStruct = new MyStruct { Id = 1, Name = "Тест" };
        string jsonString = JsonSerializer.Serialize(myStruct);
        Console.WriteLine(jsonString);
    }
}

Якщо ви хочете серіалізувати приватні поля, ви можете написати власні методи серіалізації та десеріалізації.