Please see my comment to the question. A will assume you mean .NET vs. C++, not C++/CLI. If both sides are .NET, there are no problems whatsoever. All code and serialization mechanism are platform-wide in .NET, they are not specific to language. Also, in .NET serialization is fundamentally based on Reflection (http://en.wikipedia.org/wiki/Reflection_%28computer_programming%29
]). So, how about interoperability between .NET and "classic" C++.
Well, possible, but in practice very boring stuff, at least these days.
Basically, you need to create logically identical classes in both systems and use identical means of serialization. There can be several boring approaches. First, you can develop such classes or translate from language to language manually. Also, you can develop interfaces for classes using IDL (http://en.wikipedia.org/wiki/Interface_description_language
]) and generate code for both .NET and C++. On top of it, you can use serialization in both system using some common standard. You can try Soap (http://en.wikipedia.org/wiki/SOAP
]) or JSON (http://en.wikipedia.org/wiki/JSON
Here you can find assortment of product implementing JSON for different platforms and languages: http://www.json.org/