우물에서 캐스트 myObject로는 byte[]당신이 경우 또는 명시 적 변환을 가지고하지 않는 한 결코 작업에가는되지 myObject 이다byte[] . 당신의 직렬화 프레임 워크가 필요 어떤 종류. 나에게 가깝고 사랑하는 프로토콜 버퍼 를 포함하여 많은 것이 있습니다 . 공간과 시간 측면에서 꽤 "가볍고 비열하다".
거의 모든 직렬화 프레임 워크에는 직렬화 할 수있는 항목에 대한 상당한 제한이 있습니다. 그러나 크로스 플랫폼이기 때문에 프로토콜 버퍼가 일부 이상입니다.
더 많은 요구 사항을 제공 할 수 있다면 더 많은 도움을 드릴 수 있습니다.하지만 캐스팅만큼 간단하지는 않습니다.
편집 : 이에 응답하기 위해 :
객체의 바이트를 포함하려면 바이너리 파일이 필요합니다. 바이트 만, 메타 데이터는 전혀 없습니다. 패킹 된 객체 대 객체. 그래서 커스텀 직렬화를 구현할 것입니다.
객체의 바이트는 종종 참조라는 점을 명심하십시오. 따라서 무엇을해야할지 알아 내야합니다.
사용자 지정 직렬화 프레임 워크를 디자인하고 구현하는 것이 생각보다 어렵다는 것을 알게 될 것입니다.
저는 개인적으로 몇 가지 특정 유형에 대해서만이 작업을 수행해야하는 경우 일반 직렬화 프레임 워크를 생각하지 않는 것이 좋습니다. 필요한 모든 유형에서 인스턴스 메서드와 정적 메서드를 구현하기 만하면됩니다.
public void WriteTo(Stream stream)
public static WhateverType ReadFrom(Stream stream)
명심해야 할 한 가지는 상속이 포함되면 모든 것이 더 까다로워집니다. 상속이 없으면 어떤 유형으로 시작하는지 알고 있다면 유형 정보를 포함 할 필요가 없습니다. 물론 버전 관리의 문제도 있습니다. 유형의 다른 버전과의 역방향 및 순방향 호환성에 대해 걱정해야합니까?