可以通过C#反序列化序列化的简单java对象吗?

时间:2013-07-23 05:16:45

标签: c# java .net serialization deserialization

假设java类的所有字段都是java原语,如果这样的对象已被序列化,那么C#是否可以成功地将其反序列化为“等效”C#类的实例?

反过来可能 - C#到java?


我意识到有许多与语言无关的格式,例如可以使用来完成工作的XML。我更感兴趣的是使用 native 序列化数据是否可行。

4 个答案:

答案 0 :(得分:6)

序列化流的格式可用。我认为你可以轻松编写一个类来解析字节流并在C#中创建所需的类。

指定序列化格式的文章: http://www.javaworld.com/community/node/2915

答案 1 :(得分:1)

这是不可能的,至少不使用两个框架提供的本机序列化库,如this之前的SO帖子中所述。

如果要实现跨语言序列化/反序列化,可以使用XML(XSTream表示Java,XStream-dot-net表示C#)或WOX

  

WOX是Java和C#对象的XML序列化程序。换句话说,WOX   是一个库(woxSerializer.jar用于Java,woxSerializer.dll用于   C#)将Java和C#对象序列化为XML并再次返回。

答案 2 :(得分:1)

WOX将有助于实现可互操作的序列化 它可以serialize/deserialize Java/C#个对象into/from标准XML(独立于平台)

答案 3 :(得分:0)

如果您可以包含其他依赖项,则可以考虑使用db4o等对象数据库作为作业。我自己没试过,但根据维基百科的文章,

  

当类定义不可用时,db4o使用称为“通用反射器”的自定义功能来表示类信息,允许在混合的Java-.NET环境中使用它,例如Java客户端 - .NET服务器,反之亦然

您可以找到有关上述反射API herehere的更多信息。

简而言之,这将导致一个系统,您将Java / C#对象存储到(嵌入式)数据库(即,没有客户端/服务器体系结构,但通过加载包含整个数据库的单个文件)并检索之后来自数据库的C#/ Java对象。