#c# #c #visual-studio #protocol-buffers #protobuf-csharp-port
#c# #c #visual-studio #протокол-буферы #protobuf-csharp-порт
Вопрос:
Я хочу использовать Google protobuf как на c #, так и на c .Я использовал protobuf-csharp-port для генерации кода на c #.Код protobuf в c и c # был сгенерирован из одного и того же файла .proto, и я установил тот же объект с тем же значением.
код на c :
GetTokenReq getTokenReq;
getTokenReq.set_account_name("");
getTokenReq.set_login_type(8);
getTokenReq.set_auth_data("");
getTokenReq.set_is_tourist(1);
getTokenReq.set_password(g_strPwd);
c # код:
GetTokenReq.Builder reqBuilder = new GetTokenReq.Builder();
reqBuilder.SetAccountName(ByteString.CopyFrom("", Encoding.ASCII));
reqBuilder.SetLoginType(8);
reqBuilder.SetAuthData(ByteString.CopyFrom("", Encoding.ASCII));
reqBuilder.SetIsTourist(1);
reqBuilder.SetPassword(ByteString.CopyFrom(g_strPwd, Encoding.ASCII));
GetTokenReq getTokenReq = reqBuilder.Build();
Я хочу сериализовать объект в строку, поэтому я использовал функцию SerializeToString в c и функцию writeTo в c #.Вот так:
код на c :
getTokenReq.SerializeToString(amp;strBody);
c # код:
MemoryStream stream = new MemoryStream();
oReq.WriteTo(stream);
byte[] buffer = stream.ToArray();
string strBody = Encoding.ASCII.GetString(buffer);
Однако результат strBody в c не такой, как в c #.Почему и как я могу это сделать.
значение c :