2

저는 객체 직렬화에 익숙하지 않고 BinaryFormatter을 사용하여 파일을 읽고 (deserialize하고 serialize하는) 방법을 배우는 동안 BinaryReaderBinaryWriter을 보았습니다. 동일한 작업을 수행하는 것처럼 보였습니다.BinaryWriter와 BinaryFormatter.Serialize의 차이점은 무엇입니까?

BinaryFormatter.Serialize()BinaryWriter 사이에 약간의 차이가 있습니까? 또는 BinaryWriter은 동일한 작업을 수행하는 데 더 간단한 방법이 BinaryFormatter.Serialize()입니까?

+0

잠재적 CodeProject의 기사 당신에게 몇 가지 사용이 될 수있다 [경우 BinaryFormatter 대 수동 직렬화 (http://www.codeproject.com/Articles/311944/BinaryFormatter - 또는 - 수동 직렬화) – jrbeverly

답변

4

BinaryWriter은 스트림에 이진 형식의 기본 형식을 쓰는 데 사용되며 특정 인코딩으로 문자열 쓰기를 지원합니다. BinaryFromatter은 연결된 개체의 전체 개체 또는 그래프를 이진 형식으로 serialize하는 작업을 담당합니다. 그래서, BinaryWriterBinaryFormatter과 같은 훨씬 더 기본적인 형태라고 말할 수 있다고 가정합니다. 내가 여기에이 정보를 가지고

: BinaryWriter & BinaryFormatter

3

BinaryWriter와 BinaryFormatter는 다른 두 가지입니다.

BinaryFormatter는 직렬화에 사용됩니다. 파일, 네트워크 스트림 등에 쓸 수있는 C# 개체를 이진 표현에 매핑하는 데 도움이됩니다.

그러나 BinaryWriter는 C# 개체를 이진 데이터에 매핑하는 데 도움이되지 않습니다. 이름 그대로 이진 데이터를 쓸 수 있습니다. 그래서 int와 같은 원시 타입을 제공합니다. 바이너리로 변환하여 씁니다. 당신이 그것을 읽을 필요가있을 때 작성한 후에는 BinaryReader를 사용해야하고 int를 읽어야한다는 것을 알아야합니다. 따라서 어떻게 든 데이터를 직렬화해야합니다.

BinaryFormatter는 BinaryWriter를 사용하여 이진 데이터를 쓸 수 있다고 말할 수 있지만 개체를 ​​자동으로 serialize하고 deserialize하기 위해 많은 다른 작업을 수행합니다.