Задание
Принимать на вход в asp.net web api endpoint модель в виде byte[], эта модель будет путешествовать далее через MediatR. Нужно использовать gRPC (.proto файлы) для бинарной сериализации данных.
Проблема
Для того, что бы эта модель прошла через MediatR, это должен быть IRequest<T>, но я не понимаю, как сказать, что proto-message должен быть IRequest. В генерируемом коде это сообщение помечено как public sealed partial class, но я не могу его даже так реализовать как partial class, из-за модификатора sealed (Странно, почему тогда генерируется partial)
Nik Faraday, В message у вас будет тип bytes
rpc SetImage(bytes) returns (...);
или
rpc SetImage(SetRequest) returns (...);
message SetRequest
{
bytes Data = 1;
}
Почему не сделать отдельный IRequest, у которого единственное поле - этот массив байтов модели?
Либо при получении этого массива делай его парсинг и создавай отдельный, готовый класс модели IRequest
Nik Faraday, знаю, но проблема здесь в том, чтобы просто подружить grpc и mediatr. Поэтому достаточно просто маппить объекты из этих 2 миров: вручную или каким-нибудь Mapster'ом
Nik Faraday, если код для grpc генерируется вручную (т.е. не предкомпилированный), то просто надо взять этот сгенерированный код и подправить под себя.
я так уже делал, главное логику парсинга и т.д. не трогать