gpt4 book ai didi

c# - 将流转换为字节串

转载 作者:行者123 更新时间:2023-11-30 22:55:22 24 4
gpt4 key购买 nike

我有 Stream,我需要通过 protobuf 消息将其作为 bytes 返回。如何将 Stream 转换为 protobuf 期望的 ByteString?是否像文档中显示的那样简单 Serialization

由于项目的性质,我无法很好地测试它,所以我有点盲目工作。这是我正在使用的:

Protocol Buffer :

message ProtoResponse {
bytes ResponseValue = 1;
}

C#

public ProtoResponse SendResponse(Stream stream)
{
var response = ProtoResponse
{
// this obviously does not work but
// but it conveys the idea of what I am going for
ResponseValue = stream
}
return response;
}

我试图将 Stream 转换为 stringbyte[] 但 VS 中的 C# 编译器一直显示此错误消息:

Cannot implicitly convert type '' to 'Google.Protobuf.ByteString'.

我知道我遗漏了一些东西,而且我缺乏对 Streamsprotocol buffers 的了解。

最佳答案

实际上,我可能已经回答了我自己的问题。 ByteString 有一个接受 byte[] 的扩展。

public ProtoResponse SendResponse(Stream stream)
{
byte[] b;
using (var memoryStream = new MemoryStream())
{
stream.CopyTo(memoryStream);
b = memoryStream.ToArray();
}
var response = ProtoResponse
{
ResponseValue = ByteString.CopyFrom(b)
}
return response;
}

如果有人发现这有什么问题,请随时告诉我!谢谢!

关于c# - 将流转换为字节串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55283258/

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