If you're fine with including another dependency, you might consider using a database of objects such as db4o for the job. I have not tried this myself, but according to the Wikipedia article,
db4o uses a user-defined function called a "common reflector" to present class information when class definitions are unavailable, which allows it to be used in a mixed Java-.NET environment, for example, a Java client-.NET server and vice versa.
You can find more information about the reflection API mentioned above here and.
In short, this will lead to a system in which you store Java / C # objects in a (built-in) database (i.e. without a client-server architecture, but loading a single file containing the entire database) and extract C # / Java- objects from the database.
source share