假設java類的所有字段都是java原語,如果這樣的對象已經被序列化了,它可以被C#成功地反序列化爲一個「等價」的C#類的實例嗎?可以通過C#反序列化一個序列化的簡單java對象嗎?
是可能的反向 - C#到java?
我知道有很多語言無關的格式,如XML,可能是使用來完成這項工作。我對使用本地序列化數據是否可行表示更感興趣。
假設java類的所有字段都是java原語,如果這樣的對象已經被序列化了,它可以被C#成功地反序列化爲一個「等價」的C#類的實例嗎?可以通過C#反序列化一個序列化的簡單java對象嗎?
是可能的反向 - C#到java?
我知道有很多語言無關的格式,如XML,可能是使用來完成這項工作。我對使用本地序列化數據是否可行表示更感興趣。
這是不可能的,至少不使用這兩個框架提供的本地序列化庫,如this之前的SO帖子中所述。
如果要實現跨語言序列化/反序列化,你可以求助於XML(XSTream針對Java,XStream-dot-net對於C#)或WOX:
WOX是Java和C#對象的XML序列化。換句話說,WOX 是一個庫(用於Java的woxSerializer.jar,用於C#的 的woxSerializer.dll),用於將Java和C#對象序列化爲XML並返回。
這是不正確的。自Java版本1.1.7以來,Java序列化格式被公開記錄並保持穩定。假設Java類的所有字段都是Java原語,沒有理由不能將Java對象反序列化爲C#,除非您必須自己實現解析器。 – zneak
WOX將有助於實現可互操作的序列化。
可以serialize/deserialize
Java/C#
對象into/from
標準XML
(獨立於平臺)
串行化流的格式是可用的。我認爲你可以輕鬆編寫一個類來解析字節流並在C#中創建所需的類。
的一篇文章,它指定序列化格式: http://www.javaworld.com/community/node/2915
這是我想知道的更多。我的C#知識是非常有限的,但如果它可以被描述,它可以被編程... – Bohemian
它只是字節[]遍歷。你可以看一個示例java代碼來遍歷序列化字節[link](https://github.com/smartplatf/a-utilities/blob/master/src/main/java/org/anon/utilities/serialize/ srdr/SerialStreamReader.java)。我們修改了默認的序列化,所以我們的遍歷有點不同。我們已經習慣於檢測骯髒的領域。 – Raji
序列化格式的更正式的定義可以[在官方的Java文檔中找到](http://docs.oracle.com/javase/7/docs/platform/serialization/spec/protocol.html)。 – zneak
不,我沒有嘗試過。以爲我會先問,以防萬一不可能。 – Bohemian