.Net Core gRPC入門實踐(protobuf .proto說明)

1、repeated: 可重複變長字段,類似數組/list集合;例如:repeated int32 Name=1; 生成的C#是個創建好的、只讀的空集合

ResponseModel result = new ResponseModel()
{
      Id = 1,
      Name = "小王",
      ABool = false
};
result.ADouble.AddRange(new List<double>() { 1, 2 }); //C#賦值方式

2、引入其它proto文件:import "Protos/greet.proto";   #greet.proto與當前文件在同一個目錄下,必須帶上”Protos/“;

枚舉的使用:

enum UserType{
   type1=0;
   type2=1;
}

3、類型嵌套:

message RequestParam{
   int32 Id = 1 ;
   UserType type1 =3;
   message SubParam{
        int32 Id = 1 ;
        string name =2;
   };
   SubParam SubParams=4;
}

 4、基礎類型:

.proto類型 C#類型  
double double 數值默認爲0
float float 數值默認爲0
int32 int

數值默認爲0

使用可變長編碼方式。編碼負數時不夠高效;如果你的字段可能含有負數,那麼請使用sint32。

int64 long

數值默認爲0

使用可變長編碼方式。編碼負數時不夠高效;如果你的字段可能含有負數,那麼請使用sint64。

uint32 uint 數值默認爲0
uint64 ulong 數值默認爲0
sint32 int

數值默認爲0

使用可變長編碼方式。有符號的整型值。編碼時比通常的int32高效。

sint64 long

數值默認爲0

使用可變長編碼方式。有符號的整型值。編碼時比通常的int64高效。

fixed32 uint

數值默認爲0

總是4個字節。如果數值總是比2^28大的話,這個類型會比uint32高效。

fixed64 ulong

數值默認爲0

總是8個字節。如果數值總是比2^56大的話,這個類型會比uint64高效。

sfixed32 int

數值默認爲0

總是4個字節。

sfixed64 long

數值默認爲0

總是8個字節。

bool bool bool默認爲false;
string string

string默認爲空字符串;

一個字符串必須是UTF-8編碼或者7-bit ASCII編碼的文本。

bytes Google.Protobuf.ByteString  
map Google.Protobuf.Collections.MapField 例如:map<string,string> resultMap = 1;
google.protobuf.Timestamp google.protobuf.Timestamp

需要引用一下:import public "google/protobuf/timestamp.proto";

C# 賦值方式: Time= Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(DateTime.Now)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章