隨着微服務的發展,相信越來越多的.net人員也開始接觸GRpc這門技術,大家生成GRpc客戶端的方式也各不相同,今天給大家介紹一下依據Proto文件生成Rpc客戶端的五種方式
前提:需要安裝4個Nuget包
Google.Protobuf、Grpc、GRpc.Net.ClientFactory、GRpc.Tools
VS安裝命令如下
Install-Package Google.Protobuf
Install-Package Grpc
Install-Package GRpc.Net.ClientFactory
Install-Package GRpc.Tools
准備工作
首先我們新建一個簡單的.net core3.1類庫 命名為:GRpc.Proto 然后添加HelloWord.Proto 添加一個簡單的協議
syntax = "proto3";
import "google/protobuf/timestamp.proto";
option csharp_namespace = "HelloWordDemo";
package HelloWord;
service HelloWord{
rpc SayHelloWord(SayHelloWordRequest) returns (SayHelloWordResponse);
}
message SayHelloWordRequest{
string message=1;//發送消息
}
message SayHelloWordResponse{
string message=2;//返回消息
}
然后給該類庫安裝上述的安裝包(當前類庫只是協議,不需要安裝GRpc.Net.ClientFactory)
截止到現在,我們的准備工作已經做好了,接下來開始進入正題
通過添加服務引用
新增一個名為GRpcClient的控制台,安裝以上介紹的四個類庫
項目右鍵點擊添加-->服務引用
選擇瀏覽找到我們剛剛添加的proto文件 將選擇要生成的類的類型選"客戶端"
點擊確定 第一種就完成了
通過Nuget包添加引用
這種在公司項目中比較推薦使用的(前提是已經有了私有nuget庫)
找到我們剛剛新增的GRpc.Proto項目,右鍵屬性,找到打包,填寫相對應的信息,一定要勾選在構建會生成Nuget包
重新生成之后就可以在項目debug目錄下看到對應的nuget包了,推送到私有的nuget庫就可以了
直接通過Proto文件引用
在項目下新建一個文件Until,將上面的HelloWord.Proto文件放在新建的文件下,右鍵點擊HelloWord.Proto的屬性
生成操作選擇ProtoBuf conpiler
會出現一個新的屬性:如下
此時我們選擇Client only
客戶端就生成好了
通過url添加引用
項目右鍵點擊添加-->服務引用
選擇Url(一定要公網可以訪問,如果是在github上的一定要有如下的操作)
點擊Raw
使用這個路徑 才可以成功
通過地址生成Proto文件引用
這種方式其實和上面一種方式的用法差不多,但是感覺還是需要寫一些。萬一大家哪天需要用到呢
這種方法是通過donnet命令和proto文件地址生成proto文件
這里需要大家配置一個環境變量
命令如下
在PwwerShell獲取VS控制台執行以下命令
dotnet grpc add-url proto文件的url(公網可訪問) -o 文件生成的地址
如果大家有其他的生成需求 可點擊 跳轉到具體頁面查看詳細介紹
這里面的需要的tools文件我已上傳到百度網盤,鏈接會在文末給出,如果大家需要,自行下載
tools文件下載地址:
鏈接:https://pan.baidu.com/s/1Vc7FW1w3dX_ZNsbUbh62vQ
提取碼ari6
如有哪里講得不是很明白或是有錯誤,歡迎指正
如您喜歡的話不妨點個贊收藏一下吧