2016-08-18 49 views
0

我目前正在編輯一個二進制文件的小項目。因此,我想使用IConvertible接口,因爲我無法爲每種類型創建一個Getter和Setter。
目前我在Setter上工作,需要將IConvertible對象轉換爲bytearray。C#:從IConvertible獲取Bytearray

二傳手目前看起來是這樣的:
public void SetValue(UInt32 Offset, IConvertible Value) { }

有誰知道爲了得到從IConvertible對象的ByteArray的方式,因爲BitConverter不提供這樣一個土生土長的方式。

回答

2

IConvertible不適用於這種情況下,通過的IConvertible主要方法(ToStringToUInt64等)所反映的。有輔助ToType可能工作,但大多數類型不支持ToTypebyte[](爲conversionType)。如果有,那麼這會工作:

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

然而,這是不是東西你應該做的,它是不是預期的使用情況。坦率地說,你的序列化細節通常應該存在分開到的對象。

+0

好的,謝謝你的回覆。我將編輯我的代碼以使用不同的方法。謝謝你指出這一點給我。 :) – imthe666st