C#: получить Bytearray от IConvertible

В настоящее время я работаю над небольшим проектом, где я редактирую двоичный файл. Поэтому я хочу использовать интерфейс IConvertible, поскольку я не могу создать метод получения и установки для каждого типа.
В настоящее время я работаю над Setter, который должен преобразовать объект IConvertible в байтовый массив.

Сеттер в настоящее время выглядит так:
public void SetValue(UInt32 Offset, IConvertible Value) { }

Кто-нибудь знает способ получения байтового массива от объекта IConvertible, поскольку BitConverter не предлагает родной способ сделать это.

1 ответ

Решение

IConvertible не предназначен для этого сценария, как это отражено в основных методах IConvertible (ToString, ToUInt64, так далее). Есть вспомогательный ToType который может работать, но большинство типов не поддерживают ToType с byte[] (за conversionType). Если это так, то это будет работать:

var blob = Convert.ChangeType(obj, typeof(byte[]));

Тем не менее, это не то, что вы должны делать, и это не предполагаемое использование. Честно говоря, ваши детали сериализации обычно должны существовать отдельно от объектов.

Другие вопросы по тегам