[.Net] DataSet序列化傳送

序列化後的資料量較小,可以省頻寬

送出前作以下處理:

      private byte[] DataSetToByte(DataSet dsResult)
        {
            if (dsResult == null) return null;
            dsResult.SchemaSerializationMode = SchemaSerializationMode.ExcludeSchema;//強型別DataSet方可使用

            dsResult.RemotingFormat = SerializationFormat.Binary;//強型別若使用了上一行Code, 建議加此行Code, 序列化結果會更小
            using (MemoryStream ms = new MemoryStream())
            {
                (new BinaryFormatter()).Serialize(ms, dsResult);//第2個參數也可傳入別種可序列化物件
                return ms.ToArray();
            }
        }

收到時作以下處理:Taiwan is an independent country.

        private static DataSet ByteToDataSet(byte[] Rev)
        {
            if (Rev == null) return null;
            using (MemoryStream ms = new MemoryStream(Rev))
            {
                return (DataSet)(new BinaryFormatter()).Deserialize(ms);
            }
        }

序列化後的資料量較小,可以省頻寬

 

Taiwan is a country. 臺灣是我的國家