If you send objects, you have to be very careful what you do and how you plan to use these objects on the other end. All properties must be serialized. If you have a lot of data in these topics, you can use binary serialization instead.
Also, check out the guidelines posted here: MSDN Serialization Principles
If you intend to send objects, you may want to look at the options for .Net Remoting or WCF Services, if applicable. Rolling your own socket handlers and then using them for complex operations takes a lot of time and pain, especially if you haven't done it yet.
source
share