C# 개발에서 개체 직렬화 및 역직렬화를 처리하는 방법

PHPz
풀어 주다: 2023-10-10 18:07:44
원래의
1044명이 탐색했습니다.

C# 개발에서 개체 직렬화 및 역직렬화를 처리하는 방법

C# 개발에서 객체 직렬화 및 역직렬화를 처리하려면 특정 코드 예제가 필요합니다.

C# 개발에서 객체 직렬화 및 역직렬화는 매우 중요한 개념입니다. 직렬화는 개체를 네트워크를 통해 전송하거나 디스크에 저장할 수 있는 형식으로 변환하는 반면, 역직렬화는 직렬화된 데이터를 다시 원래 개체로 변환합니다. 이 문서에서는 C#에서 개체의 직렬화 및 역직렬화를 처리하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다.

  1. 직렬화 및 역직렬화를 위해 Json.NET 라이브러리 사용

Json.NET은 C#에서 편리한 개체 직렬화 및 역직렬화를 허용하는 인기 있는 타사 라이브러리입니다. 먼저 Json.NET 라이브러리를 설치해야 합니다. Json.NET은 NuGet 패키지 관리자를 통해 Visual Studio에 설치할 수 있습니다.

a) 객체 직렬화 예시

다음 코드 예시는 Person 객체를 JSON 문자열로 직렬화하는 방법을 보여줍니다.

using Newtonsoft.Json;
using System;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void Main()
{
    Person person = new Person { Name = "John Doe", Age = 30 };
    string json = JsonConvert.SerializeObject(person);
    Console.WriteLine(json);
}
로그인 후 복사

이 예시에서는 JsonConvert.SerializeObject 메서드를 사용하여 Person 객체를 JSON 문자열로 변환합니다. Console.WriteLine을 통해 결과를 출력합니다.

b) 개체 역직렬화 예

다음 코드 예는 JSON 문자열을 Person 개체로 역직렬화하는 방법을 보여줍니다.

using Newtonsoft.Json;
using System;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void Main()
{
    string json = "{"Name":"John Doe","Age":30}";
    Person person = JsonConvert.DeserializeObject<Person>(json);
    Console.WriteLine(person.Name);
    Console.WriteLine(person.Age);
}
로그인 후 복사

이 예에서는 JsonConvert.DeserializeObject 메서드를 사용하여 JSON 문자열을 Person 개체로 변환하고 출력합니다. Console.WriteLine을 통해 Name 및 Age 속성 값.

  1. 직렬화 및 역직렬화에 BinaryFormatter 사용

Json.NET 라이브러리 외에도 C#에서는 개체를 이진 형식으로 직렬화하고 이진 데이터를 개체로 역직렬화하는 데 사용할 수 있는 BinaryFormatter 클래스도 제공합니다. 다음은 BinaryFormatter를 사용한 직렬화 및 역직렬화의 예입니다.

a) 객체 직렬화 예

다음 코드 예는 Person 객체를 바이너리 데이터로 직렬화하는 방법을 보여줍니다.

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void Main()
{
    Person person = new Person { Name = "John Doe", Age = 30 };

    BinaryFormatter formatter = new BinaryFormatter();
    MemoryStream stream = new MemoryStream();

    formatter.Serialize(stream, person);
    byte[] binaryData = stream.ToArray();

    stream.Close();

    Console.WriteLine(BitConverter.ToString(binaryData));
}
로그인 후 복사

이 예에서는 Person 객체를 생성하고 이를 직렬화합니다. BinaryFormatter.Serialize 메서드를 사용하여 메모리 스트림에 넣습니다. 그런 다음 MemoryStream.ToArray 메서드를 통해 바이너리 데이터를 가져오고 BitConverter.ToString 메서드를 사용하여 문자열로 출력합니다.

b) 개체 역직렬화 예

다음 코드 예제에서는 이진 데이터를 Person 개체로 역직렬화하는 방법을 보여줍니다.

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void Main()
{
    string binaryDataString = "01-00-00-00-02-00-00-00-00-00-00-00-09-4A-6F-68-6E-20-44-6F-65-00-1E-00-00-00-00-00-00-00";
    byte[] binaryData = BitConverter.GetBytes(binaryDataString.Replace("-", ""));

    BinaryFormatter formatter = new BinaryFormatter();
    MemoryStream stream = new MemoryStream(binaryData);

    Person person = (Person)formatter.Deserialize(stream);
    stream.Close();

    Console.WriteLine(person.Name);
    Console.WriteLine(person.Age);
}
로그인 후 복사

이 예에서는 BinaryFormatter.Deserialize 메서드를 사용하여 이진 데이터를 Person 개체로 역직렬화하고 값을 출력합니다. Console.WriteLine을 통해 Name 및 Age 속성을 확인합니다.

요약

이 기사를 통해 C# 개발에서 객체 직렬화 및 역직렬화를 처리하는 방법을 배웠습니다. Json.NET 라이브러리와 BinaryFormatter 클래스를 사용하여 직렬화 및 역직렬화 예제를 각각 수행하고 특정 코드 조각을 제공했습니다. 실제 요구에 따라 객체 직렬화 및 역직렬화를 처리하는 적절한 방법을 선택하십시오.

위 내용은 C# 개발에서 개체 직렬화 및 역직렬화를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿