Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Serialization in C# and de-serialization in Java

Is it possible to serialize the class/object in C# and deserialize the same in java. I want to serialize the class and not any XML/JSON data. Please clarify.

Thanks

like image 805
Aada Avatar asked Aug 17 '26 13:08

Aada


1 Answers

I see 3 options here. I suggest option 1, Protobufs.

Look into Google's ProtoBufs

Or some equivalent. Here's the java version. Here's a C# port.

Protobufs meant for this sort of language interop. Its binary, small, fast, and language agnostic.

Also it has backwards compatibility, so if you change the serialized objects in the future, you can still read them. This feature is transparent to you too, long as you write code understanding newer variables could be missing when unserialized old objects. This is a huge advantage!

Implement one language's default serialization in the other

You can try implementing the java serialization logic in C#, or the C# serialization routines in Java. I don't suggest this as it will be more difficult, more verbose, almost certainly slower as you're writing new code, and will net you the same result.

Write your serialization routines by hand

This will certainly be fast, but tedious, more error prone, harder to maintain, less flexible...

Here's some benchmarks for libraries like ProtoBufs. This should aide you in selecting the best one for your use case.

like image 114
William Morrison Avatar answered Aug 19 '26 04:08

William Morrison



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!