Итак, недавно я узнал о том, как делать потоковую передачу с protobuf- net .grp c с помощью IAsyncEnumerable<T>
. Все это прекрасно работает, но сейчас я сталкиваюсь с некоторой проблемой.
Для некоторых моих вызовов я хотел бы вызывать как некоторые метаданные, так и поток в качестве параметра.
Например:
[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.")
, Я знаю, что ответы о состоянии немного крипти c, поэтому я понял, что это на самом деле просто проблема с параметром.
Как мне тогда это сделать?
Я также пытался сделать это со следующей подписью:
[OperationContract]
Task<bool> UploadPicture(IAsyncEnumerable<byte[]> rawDataStream, string fileExtension);
С тем же результатом, поскольку мне, видимо, разрешено предоставлять только один параметр (верно для определения grp c одного параметра сообщения и одного ответа вывод).
ооочень, как мне тогда это сделать?