Ну, амплітуда з myObjectдо byte[]ніколи не буде працювати, якщо у вас немає явного перетворення або якщо myObject це а byte[]. Вам потрібна сериализация рамка якого - то. Там є багато, включаючи буфери протоколів, який мені близький і дорогий. Це досить «худий і підлий» як з точки зору простору, так і часу.
Ви виявите, що майже всі фреймворки серіалізації мають суттєві обмеження щодо того, що можна серіалізувати, проте - буфери протоколів більше, ніж деякі, через те, що вони є міжплатформними.
Якщо ви можете надати більше вимог, ми можемо вам допомогти більше - але це ніколи не буде так просто, як кастинг ...
EDIT: Просто щоб відповісти на це:
Мені потрібен мій двійковий файл, щоб містити байти об’єкта. Тільки байти, ніяких метаданих взагалі. Упакований об’єкт-об’єкт. Тож я буду впроваджувати спеціальну серіалізацію.
Будь ласка, майте на увазі, що байти у ваших об’єктах досить часто є посиланнями ... тому вам потрібно буде з’ясувати, що з ними робити.
Підозрюю, ви виявите, що розробляти та впроваджувати власну структуру серіалізації складніше, ніж ви собі уявляєте.
Я особисто рекомендую, якщо вам потрібно зробити це лише для кількох конкретних типів, не турбуйтеся, намагаючись придумати загальну структуру серіалізації. Просто застосуйте метод екземпляра та статичний метод у всіх потрібних вам типах:
public void WriteTo(Stream stream)
public static WhateverType ReadFrom(Stream stream)
Майте на увазі одне: все стає складнішим, якщо у вас є спадщина. Без успадкування, якщо ви знаєте, з якого типу починаєте, вам не потрібно включати інформацію про тип. Звичайно, тут також питання версій - чи потрібно турбуватися про зворотну та пряму сумісність з різними версіями ваших типів?