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

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

反过来可能 – C#到java?


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

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

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

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

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

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

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

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

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

您可以在此处和此处找到有关上述reflectionAPI的更多信息。

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