データはC#protobuf-netでシリアル化され、赤字に設定されます。 今、データを取得してJavaプログラムですべてを逆シリアル化したいいいえ、datetimeフィールドを期待している、彼らは正しくシリアル化することはできません。Javaプログラムでprotobuf-netでシリアル化されたデータを逆シリアル化する方法
syntax = "proto2";
option java_outer_classname = "TestMsgEntity";
message TestMsg {
required string Message = 1;//
required string UpdateTime = 2;// it can not be deserialized properly.if I change is to long,then i get zero .
}
// Javaコード
:C#プログラムで データは以下のようにエンティティから連載され、私のJavaプログラムで[Serializable]
[ProtoContract]
public class TestMsg
{
public TestMsg();
[ProtoMember(1)]
public string message { get; set; }
[ProtoMember(2)]
public DateTime UpdateTime { get; set; }
}
をRedisのために設定されているが、プロトflieは以下の通りです
byte[] byteArrayRedis = provider.getbyte("keyname"); //get the data from redis
ByteArrayInputStream baiContent = new ByteArrayInputStream(byteArrayRedis);
try {
TestMsgEntity.TestMsg msg = TestMsgEntity.TestMsg.parseFrom(baiContent);
String message = msg.getMessage(); //it is ok
String lastUpdate =msg.getLastUpdateTime();//how can i get the value?
}
[Protobuf C#メッセージの翻訳をJAVAに変換](https://stackoverflow.com/questions/12186349/protobuf-c-sharp-message-translation-to-java) – wp78de
も参照してください:https:// stackoverflow .com/questions/24036291/how-protobuf-net-serialize-datetime&https://stackoverflow.com/questions/12186349/protobuf-c-sharp-message-translation-to-java – wp78de