我的程序生成一起舉行一個類中的一些數字結果:序列化對象
[Serializable]
public class Examination
{
public string _examiner { get; set; }
public string _interpretation { get; set; }
DateTime _examination_date { get; set; }
// two following properties about 100x100 in size
public Point3D[,] _surface_coordinates { get; set; }
public double [,] _mapa_curvatura { get; set; }
public Point3DCollection _symmetry_line { get; set; }
}
現在我要堅持這個使用序列化(無需原則ORM /數據庫)和我有一些疑惑:
- 我需要序列化的數據是在其他語言編寫的腳本(Python的大部分),所以我不會用二進制序列化,使用XmlSerialization代替訪問;
- 不支持多維數據,所以我不得不將
[,]
數組轉換爲[][]
數組,這對我來說看起來有點「骯髒」(不過沒有什麼大不了的,但如果這是唯一的話)。 - 由此產生的XML有點太大(每個文件2Mb),而我在Python中使用quick'n'dirty二進制格式獲得的結果要小得多(例如,將雙精度數組保存爲長字符串,和列中的文件名,然後解析它,並在反序列化期間重塑:不太漂亮!)。
因爲我是序列化領域的完整初學者,所以我想問一下:「將這個類序列化並反序列化到磁盤,這將成爲一種可行的策略/策略?主要要求是:
- 可以用其他語言閱讀;
- 緊湊的文件大小;
- 尊重C#/ .net良好習慣和常用習語;
感謝您的閱讀!
不比XML詳細,仍然可讀的是JSON。 – BartoszKP
爲什麼2MB太大?尺寸要求是什麼,它們來自哪裏? –
@PrestonGuillot太大了,因爲最終會有很多2mb文件,而且我知道數字結構比它的(相當冗長/膨脹/縮小)XML表示要小得多。正如其他人所建議的那樣,GZip可能是一個可以接受的解決方案,您怎麼看? – heltonbiker