Ho due applicazioni che devono comunicare tra loro. App1 deve essere in grado di serializzare un oggetto che App2 può quindi deserializzare. Facilmente fatto, giusto? Ecco il problema; App1 è basato su C#, App2 è basato su Java. Quindi App1 deve scrivere il file nel formato di file binario Java. Come si può fare?Utilizzo di C# per serializzare un oggetto deserializzabile Java
Il modo in cui lo vedo, ho due opzioni. Il primo è trovare un modo per serializzare un oggetto Java in C#, in modo che App1 crei solo il file appropriato. La mia altra opzione sarebbe scrivere un convertitore in Java che legge in un file e popola l'oggetto di conseguenza e serializza l'oggetto appena popolato. In questo modo l'app C# dovrebbe solo scrivere una sorta di file di testo formattato che il convertitore interpreta.
Non è possibile apportare modifiche all'applicazione Java.
Come dovrebbe essere fatto?
Aggiornamento:
L'applicazione Java è già nelle mani dei clienti in modo da modificare lo schema di serializzazione causerebbe i clienti dati esistenti per essere incompatibili. L'app Java utilizza la serializzazione java nativa quando si ha a che fare con questo oggetto. Le modifiche all'app Java non possono avvenire.
L'app C# utilizza buffer di protocollo per serializzare i propri dati.
Deve essere utilizzato un formato binario? Java supporta la serializzazione XML. – Steve
Credo che, sì, deve essere in formato binario, dal momento che non gli è permesso di cambiarlo. – mmr