C#:从 IConvertible 获取 Bytearray
C#: Get Bytearray from IConvertible
我目前正在做一个编辑二进制文件的小项目。因此,我想使用 IConvertible 接口,因为我无法为每种类型创建 Getter 和 Setter。
目前我正在研究需要将 IConvertible 对象转换为字节数组的 Setter。
Setter 目前看起来是这样的:
public void SetValue(UInt32 Offset, IConvertible Value) { }
是否有人知道从 IConvertible 对象获取字节数组的方法,因为 BitConverter 不提供这样做的本机方法。
IConvertible
不适用于这种情况,正如 IConvertible
(ToString
、ToUInt64
等)的主要方法所反映的那样。 是辅助ToType
,可以工作,但大多数类型不支持ToType
和 byte[]
(对于 conversionType
)。如果是这样,那么这将起作用:
var blob = Convert.ChangeType(obj, typeof(byte[]));
但是,这不是您应该做的事情,这不是预期的用途。坦率地说,您的序列化详细信息通常应该 与 对象分开存在。
我目前正在做一个编辑二进制文件的小项目。因此,我想使用 IConvertible 接口,因为我无法为每种类型创建 Getter 和 Setter。
目前我正在研究需要将 IConvertible 对象转换为字节数组的 Setter。
Setter 目前看起来是这样的:
public void SetValue(UInt32 Offset, IConvertible Value) { }
是否有人知道从 IConvertible 对象获取字节数组的方法,因为 BitConverter 不提供这样做的本机方法。
IConvertible
不适用于这种情况,正如 IConvertible
(ToString
、ToUInt64
等)的主要方法所反映的那样。 是辅助ToType
,可以工作,但大多数类型不支持ToType
和 byte[]
(对于 conversionType
)。如果是这样,那么这将起作用:
var blob = Convert.ChangeType(obj, typeof(byte[]));
但是,这不是您应该做的事情,这不是预期的用途。坦率地说,您的序列化详细信息通常应该 与 对象分开存在。