gRPC入門學習之旅目錄
gRPC入門學習之旅(一)
gRPC入門學習之旅(二)
gRPC入門學習之旅(三)
gRPC入門學習之旅(四)
gRPC入門學習之旅(七)
gRPC入門學習之旅(九)
3.12、依賴注入方式呼叫gRPC
1. 在Visual Studio 2022的解決方案資源管理器中,使用滑鼠右鍵單擊“Command”資料夾,在彈出選單中選擇“新增--> 類”,在彈出的“新增新項”對話方塊中,選擇新增 “UserIoc.cs”類,這是一個我們要實現的依賴注入的類,然後選擇“新增”。
2. 在Visual Studio 2022的解決方案資源管理器中,使用滑鼠雙擊開啟“UserIoc.cs”檔案,並新增如下具體程式碼。
using Demo.GrpcService.Protos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
namespace Demo.Grpc.Client
{
internal class UserIoc
{
/// <summary>
/// 定義gRPC客戶端服務物件
/// </summary>
private readonly UserInfo.UserInfoClient _userClient;
public UserIoc(UserInfo.UserInfoClient userClient)
{
_userClient = userClient;
}
public string GetUserInfo()
{
var userInfo = _userClient.GetUserInfo(new UserInfoRequest()
{
UserName="IocTest",
Password = "GRPC 依賴注入呼叫方式- IOC"
});
return JsonSerializer.Serialize(userInfo);
}
}
}
3. 在MainWindows.xmal檔案中新增一個Buttion控制元件,並使用滑鼠雙擊這個按鈕,在MainWindows.xmal.cs檔案中新增一個btnIocTestUserInfo_Click事件,具體程式碼如下:
<Button x:Name="btnIocTestUserInfo" Grid.Column="2" Grid.Row="0" Content="Ioc使用者資訊" Click="btnIocTestUserInfo_Click"></Button>
4.在MainWindows.xmal.cs檔案的btnIocTestUserInfo_Click事件中,新增依賴注入的程式碼。具體程式碼如下:
private void btnIocTestUserInfo_Click(object sender, RoutedEventArgs e)
{
#region 使用IOC注入的方式呼叫gRPC
IServiceCollection services = new ServiceCollection();
//註冊UserIoc服務
services.AddTransient<UserIoc>();
#region gRPC Client註冊
//呼叫http時啟用該設定
//AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
//新增gRPC客戶端服務
services.AddGrpcClient<UserInfo.UserInfoClient>(options =>
{
//設定gRPC的https服務呼叫地址
options.Address = new Uri("https://localhost:7149");
}).ConfigureChannel(grpcOptions =>
{
});
#endregion
//構建容器
IServiceProvider serviceProvider = services.BuildServiceProvider();
//解析UserIoc服務
var grpcRequestTest = serviceProvider.GetService<UserIoc>();
//呼叫UserIoc服務中的GetUserInfo方法
txtMsg.Text= grpcRequestTest.GetUserInfo();
#endregion
}
5.新開一個Visual Studio 2022,開啟Demo.GrpcService解決方案,並在Visual Studio 2022的解決方案資源管理器中,將Demo.GrpcService專案設為啟動專案。按F5,啟動。如圖。
6.在第一個Visual Studio 2022中,我們按F5,將Grpc.Demo.Client執行起來。然後點選“Ioc使用者資訊”按鈕,實現Ioc呼叫grpc的方法 。如圖