運行下面的代碼時:爲什麼簡單類型的序列化如此複雜?
int myInt = 13;
object myObj = myInt;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bf.Serialize(ms, myObj);
byte[] myByteArray = ms.ToArray();
你得到一個數組,其長度爲54個字節 - 我不明白你爲什麼不拿到4個字節長度的數組。
即使您嘗試序列化int變量(而不是對象變量),如下所示: bf.Serialize(ms,myInt);
你會得到同樣的結果。 我的目標是不同類型(的Int32,Int16類型等)轉換爲字節數組,所以我不能使用
BitConverter.GetBytes(myObj);
,因爲它不會編譯:
Error 1 The best overloaded method match for 'System.BitConverter.GetBytes(bool)' has some invalid arguments...
這是顯而易見的,因爲編譯器無法明確地告訴它,不能將對象轉換爲別的東西...
我在做什麼錯?