gpt4 book ai didi

c# - 如何使用 Protocol-buffer 在 Java 中反序列化文件?

转载 作者:太空狗 更新时间:2023-10-29 15:53:59 25 4
gpt4 key购买 nike

想在 C# 中创建一个序列化文件,然后想在 Java 中反序列化该文件。为此,我正在使用 Protocol buffer 库。这里我已经完成了:

在C#中,我添加了protobuf-net.dll,待序列化的类表示为:

Person.cs

 [ProtoBuf.ProtoContract]
public class Person
{
[ProtoBuf.ProtoMember(1)]
public int Id {get;set;}
[ProtoBuf.ProtoMember(2)]
public string Name { get; set; }
}

然后在 main 方法中,像这样序列化它:

 var person = new Person
{
Id = 12345,
Name = "Fred",
};
using (var file = File.Create("somepath\\person.bin"))
{
Serializer.Serialize(file, person);
}

我复制这个 bin 文件并将其拉入 ecilpse 文件系统- android/sdcard 并尝试反序列化它

在eclipse-JAVA中,

添加了 protobuf.jar、外部库和创建的 person.proto 文件,其中包含:

message Person{
required int32 Id=1;
required string Name=2;
}

谁能建议如何反序列化在 C# 中创建的对象?

最佳答案

关于反序列化由 Java 版本序列化的对象,Java 文档是怎么说的?基本上:“那样做”。序列化数据没有区别。

如果问题是 Java 示例以 .proto 文件开头,则使用:

string proto = Serializer.GetProto<Person>();

尽管您显示的 .proto 看起来不错。

关于c# - 如何使用 Protocol-buffer 在 Java 中反序列化文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com