iT邦幫忙

2025 iThome 鐵人賽

DAY 14
1
Software Development

30 天的 .Net gRPC 迷途系列 第 14

Day14 gRPC 進階屬性格式(巢狀)

  • 分享至 

  • xImage
  •  

前面介紹了 Protobuf 的基本純量型別後,接著探討如何運用更複雜的結構來定義

的,如: 巢狀、陣列(repeated)、Map、Oneof、自訂選項、跨檔案...等

巢狀訊息

檔案的 gStub Classes 設定成 None,代表單純產生 Partial Class

syntax = "v3";

option csharp_namespace = "MyGrpc.Shares";

package MyGrpc;

message OuterMessage {
  string id = 1;

  // 在 OuterMessage 內部定義 NestedMessage
  message NestedMessage {
    string content = 1;
    int32 status_code = 2;
  }

  // 使用巢狀訊息作為欄位型別
  NestedMessage payload = 2;
}

OrderService.cs 使用

public class OrderService
{
    public void Order()
    {
        OuterMessage outer = new OuterMessage()
        {
            Id = "Order-1",
            // 巢狀的類型都會被定義在 Types 內
            Payload = new OuterMessage.Types.NestedMessage()
            {
                Content = Guid.NewGuid().ToString(),
                StatusCode = 200
            }
        };
    }
}

上一篇
Day13 gRPC 攔截器(Interceptor)
下一篇
Day15 gRPC 進階屬性格式(陣列 Repeated)
系列文
30 天的 .Net gRPC 迷途20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言