> 백엔드 개발 > C++ > 바이너리, XML 및 JSON 직렬화를 사용하여 .NET에서 직렬화 가능 개체를 유지하고 복원하는 방법은 무엇입니까?

바이너리, XML 및 JSON 직렬화를 사용하여 .NET에서 직렬화 가능 개체를 유지하고 복원하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2025-01-23 11:47:12
원래의
362명이 탐색했습니다.

How to Persist and Restore Serializable Objects in .NET Using Binary, XML, and JSON Serialization?

.NET에서 바이너리, XML 및 JSON 직렬화를 사용하여 직렬화 가능한 객체 유지 및 복원

.NET의 개체 직렬화를 사용하면 개체를 영구 저장소에 저장하고 나중에 원래 형식으로 검색할 수 있습니다. 객체를 직렬화하려면 해당 클래스를 [Serializable]로 표시해야 합니다. 이 주석은 이진 직렬화를 사용할 때 중요하지만 XML 또는 JSON 직렬화에는 필요하지 않습니다.

다음은 바이너리, XML 및 JSON 직렬화를 위한 함수의 예입니다.

바이너리 직렬화:

public static void WriteToBinaryFile<T>(string filePath, T objectToWrite, bool append = false)
{
    using (Stream stream = File.Open(filePath, append ? FileMode.Append : FileMode.Create))
    {
        var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
        binaryFormatter.Serialize(stream, objectToWrite);
    }
}

public static T ReadFromBinaryFile<T>(string filePath)
{
    using (Stream stream = File.Open(filePath, FileMode.Open))
    {
        var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
        return (T)binaryFormatter.Deserialize(stream);
    }
}
로그인 후 복사

XML 직렬화:

public static void WriteToXmlFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
{
    TextWriter writer = null;
    try
    {
        var serializer = new XmlSerializer(typeof(T));
        writer = new StreamWriter(filePath, append);
        serializer.Serialize(writer, objectToWrite);
    }
    finally
    {
        if (writer != null)
            writer.Close();
    }
}

public static T ReadFromXmlFile<T>(string filePath) where T : new()
{
    TextReader reader = null;
    try
    {
        var serializer = new XmlSerializer(typeof(T));
        reader = new StreamReader(filePath);
        return (T)serializer.Deserialize(reader);
    }
    finally
    {
        if (reader != null)
            reader.Close();
    }
}
로그인 후 복사

JSON 직렬화(Newtonsoft.Json NuGet 패키지 필요):

public static void WriteToJsonFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
{
    TextWriter writer = null;
    try
    {
        var contentsToWriteToFile = JsonConvert.SerializeObject(objectToWrite);
        writer = new StreamWriter(filePath, append);
        writer.Write(contentsToWriteToFile);
    }
    finally
    {
        if (writer != null)
            writer.Close();
    }
}

public static T ReadFromJsonFile<T>(string filePath) where T : new()
{
    TextReader reader = null;
    try
    {
        reader = new StreamReader(filePath);
        var fileContents = reader.ReadToEnd();
        return JsonConvert.DeserializeObject<T>(fileContents);
    }
    finally
    {
        if (reader != null)
            reader.Close();
    }
}
로그인 후 복사

사용 예:

// 将someClass变量的内容写入文件。
WriteToBinaryFile<SomeClass>("C:\someClass.txt", object1);

// 将文件内容读回变量。
SomeClass object1 = ReadFromBinaryFile<SomeClass>("C:\someClass.txt");
로그인 후 복사

위 내용은 바이너리, XML 및 JSON 직렬화를 사용하여 .NET에서 직렬화 가능 개체를 유지하고 복원하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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