serialization은 개체의 상태를 유지하거나 전송할 수 있는 폼으로 변환하는 프로세스입니다. serialization의 보완은 스트림을 개체로 변환하는 역직렬화입니다. 이러한 프로세스를 함께 사용하면 데이터를 저장하고 전송할 수 있습니다.
.NET에는 다음과 같은 직렬화 기술이 있습니다.
JSON serialization 은 JSON(JavaScript Object Notation)과 .NET 개체를 매핑합니다. JSON은 일반적으로 웹에서 데이터를 공유하는 데 사용되는 개방형 표준입니다. JSON serializer는 기본적으로 공용 속성을 직렬화하며 프라이빗 및 내부 멤버도 직렬화하도록 구성할 수 있습니다.
XML 및 SOAP serialization 은 속성 및 필드만
public
직렬화하며 형식 충실도를 유지하지 않습니다. 이 기능은 데이터를 사용하는 애플리케이션을 제한하지 않고 데이터를 제공하거나 사용하려는 경우에 유용합니다. XML은 개방형 표준이므로 웹에서 데이터를 공유하는 데 적합합니다. SOAP도 마찬가지로 개방형 표준이므로 매력적인 선택입니다.이진 직렬화는 형식 충실도를 유지합니다. 즉, 개체의 전체 상태가 기록되며, 역직렬화할 때 정확히 복원됩니다. 이러한 유형의 serialization은 애플리케이션의 여러 호출 간에 개체의 상태를 유지하는 데 유용합니다. 예를 들어 개체를 클립보드로 직렬화하여 서로 다른 애플리케이션 간에 공유할 수 있습니다. 개체를 스트림, 디스크, 메모리, 네트워크를 통해 직렬화할 수 있습니다. Remoting은 serialization을 사용하여 한 컴퓨터 또는 애플리케이션 도메인에서 다른 컴퓨터 또는 애플리케이션 도메인으로 "값별" 개체를 전달합니다.
경고
BinaryFormatter
를 사용한 이진 직렬화는 위험할 수 있습니다. 자세한 내용은 BinaryFormatter 보안 가이드 및 BinaryFormatter 마이그레이션 가이드를 참조하세요.
참고 문헌
System.Text.Json
개체를 JSON 형식 문서 또는 스트림으로 serialize하는 데 사용할 수 있는 클래스를 포함합니다.
System.Runtime.Serialization
개체를 직렬화 및 역직렬화하는 데 사용할 수 있는 클래스를 포함합니다.
System.Xml.Serialization
개체를 XML 형식 문서 또는 스트림으로 serialize하는 데 사용할 수 있는 클래스를 포함합니다.
.NET