除了二进制数据外,其它的数据进行序列化是正常的(没有更改二进制数据也行),我想是写二进制时的问题:
'VB
 
dim  row  as  DataRow  =  mDataTable.Rows(0)  
row.BeginEdit()  
row("照片")  =  b'b为二进制数据  
row.EndEdit  
dim  mBinaryFormatter  as  BinaryFormatter  =  new  BinaryFormatter()  
dim  file  as  new  FilemStm1("C:\save.dat")  
mBinaryFormatter.Serialize(file,mDataSet)  //C#
DataRow row = mDataTable.Rows(0);
row.BeginEdit();
row("照片") = b;//b为二进制数据,byte[]
row.EndEdit;
BinaryFormatter mBinaryFormatter = new BinaryFormatter();
FilemStream  file = new FilemStream("C:\save.dat");
mBinaryFormatter.Serialize(file,mDataSet);

解决方案 »

  1.   

    我还试过,自已做一个类进行序列化时,Byte数组不能成功,而用int(Integer)数组时可以正常序列化
    'VB
    class MyClass1
       dim mData as Byte()
    public property Data as byte()
    Get
    return mData
    end Get
    Set (value as byte())
    mData = value
    end Set
    end class
    class MyClass2
       dim mData as Integer()
    public property Data as Integer()
    Get
    return mData
    end Get
    Set (value as Integer())
    mData = value
    end Set
    end class
    class MyClass3'失败
       sub Save1(byval path as string)
       dim mMyClass1 as new MyClass1()
         dim data(100) as byte
         mMyClass1.Data = data
         dim mBinaryFormatter as BinaryFormatter  = new BinaryFormatter()
         FilemStream  file = new FilemStream(path)
         mBinaryFormatter.Serialize(file,mMyClass1)
       end sub
    '成功
       sub Save2(byval path as string)
         dim mMyClass1 as new MyClass2()
         dim data(100) as integer
         mMyClass2.Data = data
         dim mBinaryFormatter as BinaryFormatter  = new BinaryFormatter()
         FilemStream  file = new FilemStream(path)
         mBinaryFormatter.Serialize(file,mMyClass2)
       end sub
    end class
      

  2.   

    何出此言?我用.net也才不到二个多月,这个应该是基本的吧!还是请各位支招帮帮我!
    不过分析这个可能会与垃圾收集的思想有关(一个对象能否到达,是回收的依据!),是不是说一个对象内部的对象的序列化与一个对象有序列化标记有关,或内部的其它原因?我也在研究办法
      

  3.   

    失败?有报错么? DataSet上要调用AcceptChanges()
      

  4.   

    你指不能序列化2进制数据?这倒没试过,看这个可能是vs 的bug. 但首先不要怀疑它. 因为我对序列化的原理理解不深刻.