Bem, um elenco de myObject
para byte[]
nunca vai funcionar, a menos que você tenha uma conversão explícita ou se myObject
for um byte[]
. Você precisa de algum tipo de estrutura de serialização . Existem muitos por aí, incluindo Protocol Buffers que são meus queridos. É bastante "enxuto e mesquinho" em termos de espaço e tempo.
Você descobrirá que quase todas as estruturas de serialização têm restrições significativas sobre o que você pode serializar - Buffers de protocolo mais do que alguns, por serem multiplataforma.
Se você puder fornecer mais requisitos, podemos ajudá-lo mais - mas nunca será tão simples quanto lançar ...
EDITAR: Apenas para responder a isto:
Preciso que meu arquivo binário contenha os bytes do objeto. Apenas os bytes, nenhum metadado. Objeto a objeto empacotado. Portanto, implementarei a serialização personalizada.
Por favor, tenha em mente que os bytes em seus objetos são frequentemente referências ... então você precisará descobrir o que fazer com eles.
Suspeito que você descobrirá que projetar e implementar sua própria estrutura de serialização personalizada é mais difícil do que você imagina.
Eu pessoalmente recomendaria que, se você só precisar fazer isso para alguns tipos específicos, não se preocupe em tentar criar uma estrutura geral de serialização. Basta implementar um método de instância e um método estático em todos os tipos de que você precisa:
public void WriteTo(Stream stream)
public static WhateverType ReadFrom(Stream stream)
Uma coisa a ter em mente: tudo se torna mais complicado se você tiver herança envolvida. Sem herança, se você sabe com que tipo está começando, não precisa incluir nenhuma informação de tipo. Claro, há também a questão do controle de versão - você precisa se preocupar com a compatibilidade com versões anteriores e posteriores com diferentes versões de seus tipos?