스트림은 파일, 입출력 장치, 프로세스 간 통신 파이프 또는 TCP/IP 소켓과 같은 일련의 바이트를 추상화 한 것입니다. Stream 클래스와 파생 클래스는 프로그래머가 운영 체제 및 기본 장치의 세부 정보에서 분리되어 이러한 다양한 유형의 입출력에 대한 일반적인보기를 제공합니다.
그래서 내가
직렬화가 지속성 저장 바이트에서 개체를 변환하는 과정을 말합니다 당신이 스트림을 사용하여 .NET에서 다른 형식을 사용하여 직렬화, 직렬화 사용하여 가정 귀하의 요구를 정의 할 필요가 [MSDN 말했다] . deserialization 프로세스는 데이터를 손실하지 않고 바이트를 객체로 변환합니다. 직렬화는 파일 또는 데이터베이스에 값을 저장하고 네트워크를 통해 객체를 보내고 원래의 객체 형식으로 다시 변환하는 데 사용됩니다. .NET Framework는 직렬화 프로세스를 쉽게하기위한 프레임 워크 클래스 라이브러리 (FCL) 세트를 제공합니다. 두 개의 다른 응용 프로그램간에 데이터를 전송하는 데 매우 유용합니다.
.NET Framework는 이진 serialization 및 XML serialization 형식을 지원합니다. XML 직렬화는 공용 필드 만 직렬화합니다. 그러나 이진 직렬화는 모든 개인 및 공용 필드를 직렬화합니다. 직렬화는 기본 또는 사용자 정의로 수행 될 수 있습니다. 기본 직렬화는 클래스에 SerializableAttribute 특성이 적용될 때 발생합니다. 기본 직렬화는 버전 관리를 지원하지 않습니다. 커스텀 직렬화 클래스는 SerializableAttribute로 표시해, ISerializable 인터페이스를 구현할 필요가 있습니다.사용자는 Binary 및 XML serialization 형식 모두에 대해 사용자 지정 serialization을 구현할 수 있습니다. GetObjectData는 사용자 지정 응용 프로그램에 대해 재정의해야합니다. 샘플 응용 프로그램은 이진 및 XML 직렬화에 대해 사용자 지정 serialization을 사용합니다. .NET Framework는 개발 도구와 관련된 디자이너 직렬화를 지원합니다. 사용자 지정 serialization
사용자 지정 serialization은 serialization 및 deserialization 프로세스를 제어하는 프로세스입니다. 사용자 지정 직렬화는 직렬화 중 또는 이후에 사용자 지정 메서드를 실행하거나 ISerializable 인터페이스를 구현하여 구현할 수 있습니다. 사용자 지정 serialization은 serialization 개체의 버전을 지정하는 데 사용됩니다. 직렬화 된 객체가 객체 상태를 변경 한 경우 (이후 버전에서 새 파일 추가) 사용자 정의 직렬화는 데이터 손실없이 값을 가져 오는 데 사용됩니다. 직렬화 된 객체의 버전은 속성 누락으로 인해 실패 할 수 있습니다.
사용자가 serialization 도중 및 이후에 사용자 지정 메서드를 사용하려면 직렬화 및 비 직렬화 중에 데이터를 사용자 지정하기 위해 OnDeserializedAttribute, OnDeserializingAttribute, OnSerializedAttribute 및 OnSerializingAttribute 특성을 사용하여 사용자 지정 serialization 지원을 적용해야합니다. OptionalFieldAttribute 특성은 deserialization을 위해 이전 버전 데이터를 무시하는 데 사용됩니다. 포맷터는 직렬화 복원 중에 오류를주지 않습니다. 그것은 serialization/deserialization 전후에 객체를 업데이트 할 수 있습니다.
난 당신이
http://www.codeproject.com/Articles/422474/Serialization-using-different-formats-in-NET
출처
2013-03-07 19:45:01
Ali
당신이 언급하는 어떤 마술 링크의 도움 아래 생각? 'Stream GetAStream() {return new MemoryStream();}'이 작동합니다. –