Main Page | Report this Page
.NET DotNet Forum Index  »  .NET Framework Forum  »  Serialization problem...
Page 1 of 1    

Serialization problem...

Author Message
Phil...
Posted: Mon Oct 12, 2009 3:11 am
Guest
I am trying to use binary serialisation to store and retrieve objects from
file and to/from a database. This all seemed to work fine when running in
the IDE, but when I build a release version of my application, it no longer
reads the data from the files that I have generated, nor from the database
that I have written to with the debug version.I don't get any error
messages, I just get all my properties set to nothing.. This application is
likely to be under continual development for some time, so I will need to be
able to access the same data with both the debug and release versions.

Any suggestions appreciated.
TIA
Phil.

PS. I have also tried using the XMLSerializer (I would prefer binary as it
is more compact for storage in a database), but I get an error indicating
that multi-dimensional arrays are not supported.
 
Phil...
Posted: Mon Oct 12, 2009 8:40 am
Guest
Quote:
I am trying to use binary serialisation to store and retrieve objects from
file and to/from a database. This all seemed to work fine when running in
the IDE, but when I build a release version of my application, it no longer
reads the data from the files that I have generated, nor from the database
that I have written to with the debug version.

Seems to be working now.
I think it may have just have been an issue with file locations.
 
Phil...
Posted: Wed Oct 14, 2009 7:59 am
Guest
"Phil" <p> wrote in message
news:0pednSC-iudHok7XnZ2dnUVZ8q-dnZ2d at (no spam) brightview.co.uk...
Quote:
I am trying to use binary serialisation to store and retrieve objects
from file and to/from a database. This all seemed to work fine when
running in the IDE, but when I build a release version of my application,
it no longer reads the data from the files that I have generated, nor
from the database that I have written to with the debug version.

Seems to be working now.
I think it may have just have been an issue with file locations.

Well I thought it had started working, but it's failing again now.
When I run from the VB IDE it all works fine, and when I run my deployed
application it all works fine, but if I try to use a file created when
running under the IDE it will not deserialise properly when running my
deployed application and vice versa.

Any suggestions appreciated.

My serialisation code is very simple:

' serialise:
With New BinaryFormatter
.Serialize(MyStream, MyObj)
End With

' de-serialise:
MyObj= (New BinaryFormatter).Deserialize(Stream)
 
Adam Benson...
Posted: Thu Oct 15, 2009 4:14 am
Guest
Quote:
it will not deserialise properly when running my deployed application and
vice versa

What happens? You get an object back but its corrupt? You get an exception?

If you get an exception what is it?

Cheers,

Adam.
=========
 
Phil...
Posted: Thu Oct 15, 2009 9:41 am
Guest
Quote:

What happens? You get an object back but its corrupt? You get an
exception?

No exception. I get an object but all the properties are set to Nothing. The
properties are all arrays of Double or arrays of String.
 
Phil...
Posted: Thu Oct 15, 2009 10:31 am
Guest
I have done a bit more testing, and I think the problem may be to do with
versioning. I get the same problem if I serialise to a file, and then
rebuild and re-deploy the application. The new version does not seem to want
to deserialise the data produced with the old version.
I have tried setting
AssemblyFormat = Formatters.FormatterAssemblyStyle.Simple
before the Serialze and Deserialize
calls, but this doesn't seem to make any difference.
 
Adam Benson...
Posted: Wed Oct 21, 2009 2:25 am
Guest
Something may be blowing up behind the scenes as its deserializing which is
why your object has nothing in it. Try using DbgView to see if there are any
exceptions being thrown as your object is deserializing.

AB

"Phil" <p> wrote in message
news:BI6dnbJJLov400rXnZ2dnUVZ8v6dnZ2d at (no spam) brightview.co.uk...
Quote:
I have done a bit more testing, and I think the problem may be to do with
versioning. I get the same problem if I serialise to a file, and then
rebuild and re-deploy the application. The new version does not seem to
want
to deserialise the data produced with the old version.
I have tried setting
AssemblyFormat = Formatters.FormatterAssemblyStyle.Simple
before the Serialze and Deserialize
calls, but this doesn't seem to make any difference.


 
Phil...
Posted: Wed Nov 04, 2009 5:20 am
Guest
"Adam Benson" <Adam.Benson at (no spam) community.nospam> wrote in message
news:O4ixLgiUKHA.1236 at (no spam) TK2MSFTNGP05.phx.gbl...
Quote:
Something may be blowing up behind the scenes as its deserializing which
is why your object has nothing in it. Try using DbgView to see if there
are any exceptions being thrown as your object is deserializing.

Thanks Adam,


I've left this for a while, as I didn't seem to be getting anywhere, but I
will need to come back to it soon.
I haven't used DbgView, so I'll take a look at that, and see if it helps to
shed any light on the problem. Is this something included with VS2008, or is
it something extra I need to download?
I did do some further tests last week, and I think my original assumption
was correct, that the problem is an incompatibuility between the release and
debug versions, not anything to do with the version number of the
assemblies. It is a very simple class, just a few private member variables
(mostly arrays of double or string) with public properties to get/set the
values.
I did have an additional complication that my assemblies were being loaded
from a database in the released version rather than directly from a DLL, but
I have moved these classes into a separate new DLL, and I still have the
problem.

Thanks
Phil.
 
 
Page 1 of 1    
All times are GMT - 5 Hours
The time now is Mon Dec 14, 2009 9:49 pm