私はお互いに話す必要がある2つのアプリケーションがあります。 App1は、App2が逆シリアル化できるオブジェクトをシリアル化できる必要があります。簡単に、そうですか?ここに問題があります。 App1はC#ベース、App2はJavaベースです。したがって、App1はJavaバイナリファイル形式でファイルを書き出す必要があります。これはどうすればできますか?C#を使用してJava逆シリアル化可能オブジェクトをシリアライズ
私はそれを見て、私は2つの選択肢があります。最初は、C#でJavaオブジェクトをシリアライズする何らかの方法を見つけ出し、App1が適切なファイルを作成するようにします。私の他の選択肢は、ファイルを読み込んでそれに応じてオブジェクトを生成し、新しく生成されたオブジェクトを直列化するコンバータをJavaに書くことです。そうすれば、C#アプリケーションは、コンバータが次に解釈する書式付きテキストファイルを書き出すだけで済むでしょう。
Javaアプリケーションを変更することはできません。
これはどのように行う必要がありますか?
更新:
Javaアプリケーションは、そのシリアル化のスキームは、顧客がデータに互換性がないことが、既存の原因となる変更、お客様の手の中に既にあります。 Java Appは、このオブジェクトを扱うときにネイティブのJavaシリアル化を使用します。 Javaアプリケーションの変更は起こりません。
C#アプリケーションは、プロトコルバッファを使用して独自のデータをシリアル化します。
バイナリ形式を使用する必要がありますか? JavaはXMLの直列化をサポートします。 – Steve
私はそれを変更することが許されていないので、はい、バイナリ形式でなければならないと思います。 – mmr