gRPC入門學習之旅(八) gRPC入門學習之旅(三) gRPC入門學習之旅(四) gRPC入門學習之旅(五) gRPC入門學習之旅(六) gRPC入門學習之旅(七)

 gRPC入門學習之旅(一)

 


3.7、添加proto協議文件

1.將服務端項目Demo.GrpcService中的Protos目錄中的Grpc協議文件複製過來,如下圖所示:

 

 

2.在Visual Studio 2022的解決方案資源管理器中,使用鼠標左鍵雙擊項目Demo.Grpc.Client,在文本編輯器中打開項目文件,並進行編輯,增加ItemGroup節點,將Demo.GrpcService中有關Grpc的兩個配置項複製過來,將其中GrpcServices 屬性由Server修改爲“Client”,配置項如下:

 

    <ItemGroup>

        <Protobuf Include="Protos\greet.proto" GrpcServices="Client" />

        <Protobuf Include="Protos\UserInfo.proto" GrpcServices="Client" />

    </ItemGroup>

 


3.8、客戶端編譯生成GRPC類

1. 在“解決方案資源管理器”中,使用鼠標左鍵選中項目名稱“Demo.Grpc.Client”,然後單擊鼠標右鍵,在彈出的快捷菜單中選擇“重新生成”菜單項。

2. 在“解決方案資源管理器”中,使用鼠標左鍵選中項目名稱“Demo.Grpc.Client”,然後單擊鼠標右鍵,在彈出的快捷菜單中選擇“在文件資源管理器中打開文件夾”菜單項。如下圖。

 

3.我們打開“文件資源管理器”,進入到Demo.Grpc.Common\obj\Debug\ net7.0 目錄,發現此時目錄下也有與服務端一樣的4個.cs文件,就是GRPC協議文件對應的類文件,如下圖所示:

 

4.在Visual Studio 2022,將“Demo.Grpc.Client”項目設爲啓動項目,按F5,啓動。會出現如下圖的錯誤。

 

 

 

3.9、創建公共類庫並添加Proto協議文件引用

我們在這裏使用一個公共類庫來添加協議引用。

 

1. 在Visual Studio 2022菜單欄上選擇“文件—》新建—》項目”。

或者在Visual Studio 2022的解決方案資源管理器中,使用鼠標右鍵單擊“解決方案‘Demo.GrpcService’”,在彈出的快捷菜單中選擇“添加—》新建項目”。如下圖。

2. Visual Studio 2022彈出的“創建新項目”的對話框中做如下選擇。如下圖。

  • 在最左邊的下拉框中,選擇 “C# ,如下圖中1處
  • 在中間的下拉框中,選擇 “所有平臺”,如下圖2處。
  • 在最右邊的下拉框中,選擇“庫”,如下圖3處。
  • 在下圖中4處,選擇“類庫”模板,點擊“下一步”按鈕。

     

4.在彈出的“配置新項目”的對話框中,如下圖,在“項目名稱”輸入框中,輸入“Demo.Grpc.Common”。然後使用鼠標點擊“下一步”按鈕。

5. 在彈出的“其他信息”的對話框,如下圖。在“框架”下拉框中,選擇“NET 7.0(標準期限支持)”。其他值選擇默認值即可。然後使用鼠標點擊“創建”按鈕。項目創建成功。

6.在解決方案資源管理器中——>在項目Demo.Grpc.Common中的依賴項上鼠標右鍵單擊——>彈出一個菜單,選中“管理NuGet程序包”。

7. 在打開的NuGet包管理界面的中選擇“瀏覽”標籤頁,在搜索框中輸入“google”,找到最新版本google.protobuf,點擊安裝。

8.  Visual Studio 2022 開始安裝Google.Protobuf,會彈出安裝確認界面,點擊“OK”按鈕。

9. 在打開的NuGet包管理界面的中“瀏覽”標籤頁的搜索框中輸入“grpc”,然後依次安裝以下二個包。

Grpc.Tools

Grpc.Net.ClientFactory

10. 在以上二個包全部安裝完成之後,NuGet包管理界面的中選擇“已安裝”標籤頁,會看到剛纔安裝的三個包,如下圖。

11. 在 Visual Studio 2022 的“解決方案資源管理器”中,使用鼠標右鍵單擊“Demo.Grpc.Common”,在彈出的快捷菜單中選擇“添加—》服務引用或是連接的服務”。“服務引用”和“連接的服務”均在同一個UI 下進行管理。 如下圖。

12.在出現的工具窗口中,選擇“連接的服務”部分,然後在“服務引用”部分中選擇“添加服務引用”,選擇“gRPC”並點擊“下一步”。如下圖。

13.在“添加新的gRPC服務引用”彈出界面中,選擇“文件”,點擊“瀏覽”按鈕,在彈出對話框中找到 Demo.GrpcSERVICE 項目中的 protos 文件夾中的UserInfo.proto,在“選擇要生成的類的類型”下保留“客戶端”,然後選擇“完成”。如下圖。

14.在添加完UserInfo.proto文件之後,界面返回到“連接的服務”界面,會看到服務引用中有我們剛纔添加的引用文件。如下圖。

 

 

15. 使用 Visual Studio 2022的“添加連接的服務”功能時,UserInfo.proto 文件將作爲鏈接文件而不是副本文件添加到類庫項目中,因此對服務項目中文件的更改將自動應用到客戶端項目中。 csproj 文件中的 <Protobuf> 元素如下所示:

 
  <ItemGroup>

    <Protobuf Include="..\Demo.GrpcService\Protos\UserInfo.proto" GrpcServices="Client">

      <Link>Protos\UserInfo.proto</Link>

    </Protobuf>

  </ItemGroup>

 

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