469,903 Members | 1,598 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,903 developers. It's quick & easy.

Serialization Question

Hi,

i have a StreamWriter that hold a System.Net.Sockets.NetwrokStream
and the StreamWriter Object Hold An ArrayList which
i would like to Serialize And Send it back to the client via the
StreamWriter.Flush()
Dim writer As New IO.StreamWriter(System.Net.Sockets.TcpClient.GetSt ream)

writer.Write(myArray)

Dim binF As New BinaryFormatter

how can i Serialize it ?

Thanks!

T:-)
Nov 21 '05 #1
14 2177
Is this what you want?

Dim binF As New BinaryFormatter
Dim writer As New IO.StreamWriter(System.Net.Sockets.TcpClient.GetSt ream)
binF.Serialize(writer, myArray)

Lance

Nov 21 '05 #2
yes,

but this what i tried and it didn't work for me since the
BinaryFormatter.Serialize doesn't accept a StreamWriter :)

do you know other way to implement this kind of operation ?

"ljlevend" <lj******@discussions.microsoft.com> wrote in message
news:42**********************************@microsof t.com...
Is this what you want?

Dim binF As New BinaryFormatter
Dim writer As New IO.StreamWriter(System.Net.Sockets.TcpClient.GetSt ream)
binF.Serialize(writer, myArray)

Lance

Nov 21 '05 #3
Hi Tiraman,

This sample I once made should do the job for you.

I hope this helps?

Cor

\\\
Private Sub Form1_Load(ByVal sender _
As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a As New ArrayList
a.Add("I ")
a.Add("hope ")
a.Add("this ")
a.Add("helps?")
Dim b As String = SerializeArraylist(a)
MessageBox.Show(b)
Dim c As ArrayList = DeserializeArraylist(b)
End Sub
Private Function SerializeArraylist(ByVal _
arraylst As ArrayList) As String
Dim bf As New
Runtime.Serialization.Formatters.Binary.BinaryForm atter
Dim mem As New IO.MemoryStream
bf.Serialize(mem, arraylst)
Return Convert.ToBase64String(mem.ToArray())
End Function
Private Function DeserializeArraylist(ByVal _
arraystring As String) As ArrayList
Dim bf As New
Runtime.Serialization.Formatters.Binary.BinaryForm atter
Dim mem As New
IO.MemoryStream(Convert.FromBase64String(arraystri ng))
Return DirectCast(bf.Deserialize(mem), ArrayList)
End Function
///

i have a StreamWriter that hold a System.Net.Sockets.NetwrokStream
and the StreamWriter Object Hold An ArrayList which
i would like to Serialize And Send it back to the client via the
StreamWriter.Flush()
Dim writer As New IO.StreamWriter(System.Net.Sockets.TcpClient.GetSt ream)

writer.Write(myArray)

Dim binF As New BinaryFormatter

how can i Serialize it ?

Thanks!

T:-)

Nov 21 '05 #4
Hi Cor ,

it is a good example but it is not cover my problem.

I have a NetworkStream Which I m getting into the StreamWriter which i would
like to serialize.

how can i do that ?

Thanks!

Dim writer As New IO.StreamWriter(System.Net.Sockets.TcpClient.GetSt ream)

"Cor Ligthert" <no**********@planet.nl> wrote in message
news:OD**************@TK2MSFTNGP12.phx.gbl...
Hi Tiraman,

This sample I once made should do the job for you.

I hope this helps?

Cor

\\\
Private Sub Form1_Load(ByVal sender _
As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a As New ArrayList
a.Add("I ")
a.Add("hope ")
a.Add("this ")
a.Add("helps?")
Dim b As String = SerializeArraylist(a)
MessageBox.Show(b)
Dim c As ArrayList = DeserializeArraylist(b)
End Sub
Private Function SerializeArraylist(ByVal _
arraylst As ArrayList) As String
Dim bf As New
Runtime.Serialization.Formatters.Binary.BinaryForm atter
Dim mem As New IO.MemoryStream
bf.Serialize(mem, arraylst)
Return Convert.ToBase64String(mem.ToArray())
End Function
Private Function DeserializeArraylist(ByVal _
arraystring As String) As ArrayList
Dim bf As New
Runtime.Serialization.Formatters.Binary.BinaryForm atter
Dim mem As New
IO.MemoryStream(Convert.FromBase64String(arraystri ng))
Return DirectCast(bf.Deserialize(mem), ArrayList)
End Function
///

i have a StreamWriter that hold a System.Net.Sockets.NetwrokStream
and the StreamWriter Object Hold An ArrayList which
i would like to Serialize And Send it back to the client via the
StreamWriter.Flush()
Dim writer As New IO.StreamWriter(System.Net.Sockets.TcpClient.GetSt ream)
writer.Write(myArray)

Dim binF As New BinaryFormatter

how can i Serialize it ?

Thanks!

T:-)


Nov 21 '05 #5
> Hi Cor ,

it is a good example but it is not cover my problem.

I have a NetworkStream Which I m getting into the StreamWriter which i would like to serialize.

how can i do that ?

Thanks!


Yes and what is wrong with it the sample first serialize and than deserilize
in one sample.

You have to use serialize, stream, and deserialize, however that was not the
problem I thought?

Cor
Nov 21 '05 #6
Hello Cor,

I m not sure that i understood you so here is my example and i will be happy
if you let me know where , what and why is the problem :-)
Private client As TcpClient

Sub xxx(ByVal obj As Object)

SyncLock client.GetStream
Dim sw As New IO.StreamWriter(client.GetStream)

sw.Write(CType(obj,ArrayList))

Dim bf As New BinaryFormatter

bf.Serialize(sw, obj)
sw.Flush()
sw.Close()

End SyncLock

End Sub

Thanks!

"Cor Ligthert" <no**********@planet.nl> wrote in message
news:Ow**************@TK2MSFTNGP12.phx.gbl...
Hi Cor ,

it is a good example but it is not cover my problem.

I have a NetworkStream Which I m getting into the StreamWriter which i would
like to serialize.

how can i do that ?

Thanks!


Yes and what is wrong with it the sample first serialize and than

deserilize in one sample.

You have to use serialize, stream, and deserialize, however that was not the problem I thought?

Cor

Nov 21 '05 #7
Tiraman this is the serialization part in my code

Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryForm atter
dim mem As New IO.MemoryStream
bf.Serialize(mem, arraylst)
Dim myString as STring = Convert.ToBase64String(mem.ToArray())

When I look at your code I see
Private client As TcpClient Sub xxx(ByVal myArray As as Arraylist) ' passing it as arraylist saves
casting Dim sw As New IO.StreamWriter(client.GetStream)
Dim bf As New BinaryFormatter dim mem As New IO.MemoryStream
bf.Serialize(mem, myArray)
Dim myString as String =
Convert.ToBase64String(mem.ToArray())
sw.Write(myString) sw.Flush()
sw.Close()

Than I think it can be something like this, not tried,

I hope this helps?

Cor
Nov 21 '05 #8
Hi Cor,

Now the Serialize ok but i m getting the following error in the Deserialize
method.

System.Runtime.Serialization.SerializationExceptio n: No map for object
1953724755.
at
System.Runtime.Serialization.Formatters.Binary.__B inaryParser.ReadObject()
at System.Runtime.Serialization.Formatters.Binary.__B inaryParser.Run()
at
System.Runtime.Serialization.Formatters.Binary.Obj ectReader.Deserialize(Head
erHandler handler, __BinaryParser serParser, Boolean fCheck,
IMethodCallMessage methodCallMessage)
at
System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S
tream serializationStream, HeaderHandler handler, Boolean fCheck,
IMethodCallMessage methodCallMessage)
at
System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S
tream serializationStream, HeaderHandler handler)
at
System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S
tream serializationStream)
at frmMain.DoRead(IAsyncResult ar) in frmMain.vb:line 769"

line 769 ---> MyArray = DirectCast(bf.Deserialize(ns), ArrayList)

any idea ?

Thanks !

"Cor Ligthert" <no**********@planet.nl> wrote in message
news:O7**************@TK2MSFTNGP12.phx.gbl...
Tiraman this is the serialization part in my code

Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryForm atter
dim mem As New IO.MemoryStream
bf.Serialize(mem, arraylst)
Dim myString as STring = Convert.ToBase64String(mem.ToArray())

When I look at your code I see
Private client As TcpClient Sub xxx(ByVal myArray As as Arraylist) ' passing it as arraylist

saves casting
Dim sw As New IO.StreamWriter(client.GetStream)
Dim bf As New BinaryFormatter

dim mem As New IO.MemoryStream
bf.Serialize(mem, myArray)
Dim myString as String =
Convert.ToBase64String(mem.ToArray())
sw.Write(myString)
sw.Flush()
sw.Close()

Than I think it can be something like this, not tried,

I hope this helps?

Cor

Nov 21 '05 #9
Hi Tiraman,

Without any code, what do you think I am?

Cor

Now the Serialize ok but i m getting the following error in the Deserialize method.

System.Runtime.Serialization.SerializationExceptio n: No map for object
1953724755.
at
System.Runtime.Serialization.Formatters.Binary.__B inaryParser.ReadObject()
at System.Runtime.Serialization.Formatters.Binary.__B inaryParser.Run()
at
System.Runtime.Serialization.Formatters.Binary.Obj ectReader.Deserialize(Head erHandler handler, __BinaryParser serParser, Boolean fCheck,
IMethodCallMessage methodCallMessage)
at
System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S tream serializationStream, HeaderHandler handler, Boolean fCheck,
IMethodCallMessage methodCallMessage)
at
System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S tream serializationStream, HeaderHandler handler)
at
System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S tream serializationStream)
at frmMain.DoRead(IAsyncResult ar) in frmMain.vb:line 769"

line 769 ---> MyArray = DirectCast(bf.Deserialize(ns), ArrayList)

any idea ?

Thanks !

"Cor Ligthert" <no**********@planet.nl> wrote in message
news:O7**************@TK2MSFTNGP12.phx.gbl...
Tiraman this is the serialization part in my code

Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryForm atter
dim mem As New IO.MemoryStream
bf.Serialize(mem, arraylst)
Dim myString as STring = Convert.ToBase64String(mem.ToArray())

When I look at your code I see
Private client As TcpClient

Sub xxx(ByVal myArray As as Arraylist) ' passing it as arraylist

saves
casting
Dim sw As New IO.StreamWriter(client.GetStream)
Dim bf As New BinaryFormatter

dim mem As New IO.MemoryStream
bf.Serialize(mem, myArray)
Dim myString as String =
Convert.ToBase64String(mem.ToArray())
sw.Write(myString)
sw.Flush()
sw.Close()

Than I think it can be something like this, not tried,

I hope this helps?

Cor


Nov 21 '05 #10
A Good Guy :-)

here is the code,

Dim ns As NetworkStream = client.GetStream()

Dim bf As New BinaryFormatter

Dim myarray As New ArrayList

myarray = DirectCast(bf.Deserialize(ns), ArrayList)
"Cor Ligthert" <no**********@planet.nl> wrote in message
news:uO**************@TK2MSFTNGP12.phx.gbl...
Hi Tiraman,

Without any code, what do you think I am?

Cor

Now the Serialize ok but i m getting the following error in the

Deserialize
method.

System.Runtime.Serialization.SerializationExceptio n: No map for object
1953724755.
at
System.Runtime.Serialization.Formatters.Binary.__B inaryParser.ReadObject() at System.Runtime.Serialization.Formatters.Binary.__B inaryParser.Run() at

System.Runtime.Serialization.Formatters.Binary.Obj ectReader.Deserialize(Head
erHandler handler, __BinaryParser serParser, Boolean fCheck,
IMethodCallMessage methodCallMessage)
at

System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S
tream serializationStream, HeaderHandler handler, Boolean fCheck,
IMethodCallMessage methodCallMessage)
at

System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S
tream serializationStream, HeaderHandler handler)
at

System.Runtime.Serialization.Formatters.Binary.Bin aryFormatter.Deserialize(S
tream serializationStream)
at frmMain.DoRead(IAsyncResult ar) in frmMain.vb:line 769"

line 769 ---> MyArray = DirectCast(bf.Deserialize(ns), ArrayList)

any idea ?

Thanks !

"Cor Ligthert" <no**********@planet.nl> wrote in message
news:O7**************@TK2MSFTNGP12.phx.gbl...
Tiraman this is the serialization part in my code

Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryForm atter
dim mem As New IO.MemoryStream
bf.Serialize(mem, arraylst)
Dim myString as STring = Convert.ToBase64String(mem.ToArray())

When I look at your code I see

> Private client As TcpClient
Sub xxx(ByVal myArray As as Arraylist) ' passing it as arraylist

saves
casting
> Dim sw As New IO.StreamWriter(client.GetStream)
> Dim bf As New BinaryFormatter
dim mem As New IO.MemoryStream
bf.Serialize(mem, myArray)
Dim myString as String =
Convert.ToBase64String(mem.ToArray())
sw.Write(myString)
> sw.Flush()
> sw.Close()
>
Than I think it can be something like this, not tried,

I hope this helps?

Cor



Nov 21 '05 #11
Tiraman,

Roughly written in this message.

\\\
dim ns as new IO.streamreader
Dim ns As NetworkStream = client.GetStream()
dim arraystring as string = ns.read
Dim bf As New BinaryFormatter
Dim mem As New IO.MemoryStream(Convert.FromBase64String(arraystri ng))
dim arraylist as arraylist = DirectCast(bf.Deserialize(mem), ArrayList)
///

I hope this goes as well

Cor
Nov 21 '05 #12
Hi Cor,
Once Again Thanks for your help.

now every thing working fine but i still have one problem.
with the Convert.FromBase64String i can work with very small strings and i
would like to
work with more then 64 bit.

any idea ?

Thanks

"Cor Ligthert" <no**********@planet.nl> wrote in message
news:eI****************@TK2MSFTNGP15.phx.gbl...
Tiraman,

Roughly written in this message.

\\\
dim ns as new IO.streamreader
Dim ns As NetworkStream = client.GetStream()
dim arraystring as string = ns.read
Dim bf As New BinaryFormatter
Dim mem As New IO.MemoryStream(Convert.FromBase64String(arraystri ng))
dim arraylist as arraylist = DirectCast(bf.Deserialize(mem), ArrayList)
///

I hope this goes as well

Cor

Nov 21 '05 #13
Sorry Tiraman,

Not direct, my sugestion is to put this question again as a new thread in
the group.

Cor

Once Again Thanks for your help.

now every thing working fine but i still have one problem.
with the Convert.FromBase64String i can work with very small strings and i
would like to
work with more then 64 bit.

any idea ?

Nov 21 '05 #14
Ok,
Thanks for your help.
bye

"Cor Ligthert" <no**********@planet.nl> wrote in message
news:%2******************@TK2MSFTNGP10.phx.gbl...
Sorry Tiraman,

Not direct, my sugestion is to put this question again as a new thread in
the group.

Cor

Once Again Thanks for your help.

now every thing working fine but i still have one problem.
with the Convert.FromBase64String i can work with very small strings and i would like to
work with more then 64 bit.

any idea ?


Nov 21 '05 #15

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Aaron Clamage | last post: by
5 posts views Thread by francois | last post: by
6 posts views Thread by Uttam | last post: by
reply views Thread by eSapient | last post: by
6 posts views Thread by John Glover | last post: by
15 posts views Thread by Jacques | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.