Как я могу преобразовать этот класс c # в brotobuf в версии proto3?

В моем OperationResult.Cs есть следующий класс

 public class OperationResult
    {
        public bool Result { get; set; }
        public string Message { get; set; }
        public string ErrorMessage { get; set; }
    }

    public class OperationResult<TResponse> : OperationResult
    {
        public OperationResult() { }
        public OperationResult(TResponse response)
        {
            Response = response;
        }

        public OperationResult(OperationResult result)
        {
            Result = result.Result;
            Message = result.Message;
            ErrorMessage = result.ErrorMessage;
        }
        public TResponse Response { get; set; }
    }

Теперь я хочу преобразовать этот класс в файл grpc с именем operationResult.proto следующим образом

message OperationResult{
    string Message = 1;
    string ErrorMessage = 2;
    bool Result = 3;
}

message OperationResult<Response>{
    string Message = 1;
    string ErrorMessage = 2;
    bool Result = 3;
    Response Response = 4;
}
message Response{
    Object //for example generic type 
}

Я хочу использовать этот файл для каждой службы в protobuf, поэтому я хочу передать общий тип, например реализацию С #


person Adnan    schedule 16.06.2020    source источник
comment
Напишите требуемый код .proto?   -  person Robert Harvey    schedule 16.06.2020
comment
@RobertHarvey Я обновил его   -  person Adnan    schedule 16.06.2020
comment
У вас есть вопрос. Как использовать protobuf с универсальными типами? stackoverflow.com/q/12305318   -  person Robert Harvey    schedule 16.06.2020
comment
вопрос: какова ваша цель здесь? вы действительно после файла .proto? или вы просто хотите, чтобы он работал с gRPC? Если вы просто хотите, чтобы он работал с gRPC: protobuf-net.Grpc вообще не требует .proto - вы можете использовать обычные типы .NET POCO, как указано выше, для данных и обычные интерфейсы .NET для представления служб.   -  person Marc Gravell    schedule 16.06.2020
comment
В основном, если у меня много сервисов в .proto, и я хочу обрабатывать ответ для каждой функции в сервисе, помещая общий ответ. rpc GetUser ‹request› возвращает ‹ответ ‹user››. Поэтому каждый раз я буду вызывать ответное сообщение для обработки всех функций в службах. Это мой вопрос. @MarcGravell   -  person Adnan    schedule 17.06.2020
comment
@Adnan, но .proto не имеет дженериков, поэтому, если вы начинаете с. proto, ответ - нет, вы не можете этого сделать - вам нужно использовать сгенерированные типы, которые не являются универсальными, потому что .proto не является универсальным. Если вы начинали с подхода сначала кода (не .proto), это, вероятно, вполне возможно   -  person Marc Gravell    schedule 17.06.2020