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[]));
Тем не менее, это не то, что вы должны делать, и это не предполагаемое использование. Честно говоря, ваши детали сериализации обычно должны существовать отдельно от объектов.