我的程序生成一起举行一个类中的一些数字结果:序列化对象
[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