SerializableAttribute
속성으로 표시된 모든 객체는 (대부분의 시나리오에서) 직렬화 할 수 있습니다. 직렬화의 결과는 항상 스트림으로 보내지며 스트림은 파일 출력 스트림이 될 수 있습니다.
개체 그래프를 부분적으로 직렬화 할 수없는 이유는 무엇입니까? .NET 직렬화 만 [de] 전체 객체 그래프를 직렬화합니다. 그렇지 않으면 다른 직렬화 포맷터를 사용하거나 직접 작성해야합니다.
파일에 직접 임의 액세스하려면 검색을 지원하는 스트림으로 파일을 열어야합니다.
편집 : 직렬화의 결과 스트림에서 찾는
은 실제적인 목적이 없습니다 - 단지 serialiation 포맷터 어쨌든 거기에있어 항상 스트림의 매우 시작을 공급되어야 하는지를 알고있다.
다른 구조에 데이터를 지속시키기 위해; 두 단계로 처리하십시오. 먼저 직렬화 바이트를 [ memory-backed] 스트림을 사용하여 나중에 크기를 읽을 수 있고, 그런 다음 크기에 대한 지식을 사용하여 실제 백업 저장소에 데이터를 쓸 수 있습니다.
직렬화 된 표현이 런타임 표현과 많이 다를 수 있기 때문에 직렬화 된 객체의 크기를 예측할 수 없습니다.
기본 유형 만 사용하고 BinaryWriter를 사용하여 작성한 경우 출력 크기에 대한 정확한 제어가 가능하지만 이는 직렬화가 아닙니다.
"임의 액세스 파일"이란 무엇입니까? 'System.Stream'에서 상속받은 클래스로 객체를 직렬화 할 수 있습니다. –
작동하지 않는 예제 코드를 포함시켜 주시겠습니까? – Richard
질문을 편집 한 후 확인하십시오. – Sherif