0

我目前正在做一个编辑二进制文件的小项目。因此我想使用 IConvertible 接口,因为我不能为每种类型创建一个 Getter 和 Setter。
目前我正在研究需要将 IConvertible 对象转换为字节数组的 Setter。

Setter 目前看起来像这样:
public void SetValue(UInt32 Offset, IConvertible Value) { }

有没有人知道从 IConvertible 对象中获取字节数组的方法,因为 BitConverter 不提供这样做的本机方式。

4

1 回答 1

1

IConvertibleIConvertible正如( ToString,ToUInt64等)的主要方法所反映的那样,不适用于这种情况。有一个辅助ToType可以工作,但大多数类型不支持 ToType( byte[]for conversionType)。如果确实如此,那么这将起作用:

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

但是,这不是您应该做的事情,也不是预期的用途。坦率地说,您的序列化细节通常应该与对象分开存在。

于 2016-08-18T09:47:30.363 回答