Xml Deserializer反序列化二维数组 [英] Xml Deserializer to deserialize 2-Dimensional Array

查看:253
本文介绍了Xml Deserializer反序列化二维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个反序列化数组的问题(int [])
我有一个数组 int [*,*] 并且我需要对其进行序列化和反序列化。

I have a problem about deserialize an array ( int[,]) I have an array int[*,*] and i need to serialize and deserialize it. How to do it with XMLSerializer??

    int[,] B = new int[2,5];        
    public int[,] XMLIntArray
    {
        set { B = value; }
        get { return B; }
    }


推荐答案

不幸的是,多维数组序列化是XmlSerializer或DataContractSerializer不支持,唯一的方式(人类不可读)是使用二进制序列化,例如本例中的

Unfortunately multidimensional arrays serialization are not supported by XmlSerializer or DataContractSerializer the only way (not human readable) is to use binary serialization like in this example

   public static void Main()
    {

        int[,] B = new int[2, 5];
        B[0, 0] = 5;
        B[0, 1] = 3;
        B[0, 2] = 5;  

        DeepSerialize<int[,]>( B,"test3");
        int[,] des= DeepDeserialize<int[,]>("test3");



    }

 public static void DeepSerialize<T>(T obj,string fileName)
    {
        //            MemoryStream memoryStream = new MemoryStream();
        FileStream str = new FileStream(fileName, FileMode.Create);
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        binaryFormatter.Serialize(str, obj);
        str.Close();
    }
    public static T DeepDeserialize<T>(string fileName)
    {
        //            MemoryStream memoryStream = new MemoryStream();
        FileStream str = new FileStream(fileName, FileMode.Open);

        BinaryFormatter binaryFormatter = new BinaryFormatter();
        T returnValue = (T)binaryFormatter.Deserialize(str);            
        str.Close();
        return returnValue; 
    }  

这篇关于Xml Deserializer反序列化二维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆