Bene, un cast da myObjecta byte[]non funzionerà mai a meno che tu non abbia una conversione esplicita o se myObject è un file byte[]. Hai bisogno di un framework di serializzazione di qualche tipo. Ce ne sono molti là fuori, compresi i buffer di protocollo che mi sono vicini e cari. È piuttosto "snello e meschino" sia in termini di spazio che di tempo.
Scoprirai che quasi tutti i framework di serializzazione hanno restrizioni significative su ciò che puoi serializzare, tuttavia, i buffer di protocollo più di alcuni, a causa del fatto di essere multipiattaforma.
Se puoi fornire più requisiti, possiamo aiutarti di più, ma non sarà mai semplice come lanciare ...
EDIT: solo per rispondere a questo:
Ho bisogno che il mio file binario contenga i byte dell'oggetto. Solo i byte, nessun metadata di sorta. Da oggetto a oggetto. Quindi implementerò la serializzazione personalizzata.
Tieni presente che i byte nei tuoi oggetti sono spesso riferimenti ... quindi dovrai capire cosa farne.
Sospetto che scoprirai che progettare e implementare il tuo framework di serializzazione personalizzato è più difficile di quanto immagini.
Personalmente consiglierei che se hai bisogno di farlo solo per alcuni tipi specifici, non ti preoccupare di provare a trovare un framework di serializzazione generale. Basta implementare un metodo di istanza e un metodo statico in tutti i tipi di cui hai bisogno:
public void WriteTo(Stream stream)
public static WhateverType ReadFrom(Stream stream)
Una cosa da tenere a mente: tutto diventa più complicato se hai in gioco l'eredità. Senza ereditarietà, se sai con che tipo stai iniziando, non è necessario includere alcuna informazione sul tipo. Naturalmente, c'è anche la questione del controllo delle versioni: devi preoccuparti della compatibilità con versioni precedenti e successive dei tuoi tipi?