【发布时间】:2020-02-01 13:58:41
【问题描述】:
所以,最近我在IAsyncEnumerable<T> 的帮助下了解了如何使用 protobuf-net.grpc 进行流式传输。这一切都很好,花花公子,但我现在面临一些问题。
对于我的一些调用,我想使用一些元数据以及流作为参数进行调用。
例如:
[OperationContract]
Task<bool> UploadPicture(ProfilePictureQuery query);
带有以下签名:
[ProtoContract]
public class ProfilePictureQuery
{
[ProtoMember(1)]
public IAsyncEnumerable<byte[]> RawDataStream { get; set; }
[ProtoMember(2)]
public string FileExtension { get; set; }
}
但是,当我尝试调用它时,我得到了一个像 'Status(StatusCode=Unimplemented, Detail="Method is unimplemented.") 这样的异常。我知道状态响应有点神秘,所以我发现这实际上只是参数的问题。
那我该怎么做呢?
我也尝试使用以下签名:
[OperationContract]
Task<bool> UploadPicture(IAsyncEnumerable<byte[]> rawDataStream, string fileExtension);
同样的结果,因为我显然只被允许提供一个参数(一个消息参数和一个响应输出的 grpc 定义是正确的)。
Sooo,那我该怎么做呢?
【问题讨论】:
标签: c# grpc protobuf-net