翼度科技»论坛 编程开发 .net 查看内容

gRPC入门学习之旅(十)

10

主题

10

帖子

30

积分

新手上路

Rank: 1

积分
30
gRPC入门学习之旅目录  gRPC入门学习之旅(一)gRPC入门学习之旅(二)gRPC入门学习之旅(三)gRPC入门学习之旅(四)gRPC入门学习之旅(七) gRPC入门学习之旅(九)3.12、依赖注入方式调用gRPC

1. 在Visual Studio 2022的解决方案资源管理器中,使用鼠标右键单击“Command”文件夹,在弹出菜单中选择“添加--> 类”,在弹出的“添加新项”对话框中,选择添加 “UserIoc.cs”类,这是一个我们要实现的依赖注入的类,然后选择“添加”。

2. 在Visual Studio 2022的解决方案资源管理器中,使用鼠标双击打开“UserIoc.cs”文件,并添加如下具体代码。
  1. using Demo.GrpcService.Protos;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Text.Json;
  7. using System.Threading.Tasks;
  8. namespace Demo.Grpc.Client
  9. {
  10.     internal class UserIoc
  11.     {
  12.         /// <summary>
  13.         /// 定义gRPC客户端服务对象
  14.         /// </summary>
  15.         private readonly UserInfo.UserInfoClient _userClient;
  16.         public UserIoc(UserInfo.UserInfoClient userClient)
  17.         {
  18.             _userClient = userClient;
  19.         }
  20.         public string GetUserInfo()
  21.         {
  22.             var userInfo = _userClient.GetUserInfo(new UserInfoRequest()
  23.             {
  24.                 UserName="IocTest",
  25.                 Password = "GRPC 依赖注入调用方式- IOC"
  26.             });
  27.             return JsonSerializer.Serialize(userInfo);
  28.         }
  29. }
  30. }
复制代码
 
3. 在MainWindows.xmal文件中添加一个Buttion控件,并使用鼠标双击这个按钮,在MainWindows.xmal.cs文件中添加一个btnIocTestUserInfo_Click事件,具体代码如下:
  1. [/code][align=left]4.在MainWindows.xmal.cs文件的btnIocTestUserInfo_Click事件中,添加依赖注入的代码。具体代码如下:[/align]
  2. [code]        private void btnIocTestUserInfo_Click(object sender, RoutedEventArgs e)
  3.         {
  4.             #region 使用IOC注入的方式调用gRPC
  5.             IServiceCollection services = new ServiceCollection();
  6.             //注册UserIoc服务
  7.             services.AddTransient<UserIoc>();
  8.             #region gRPC Client注册
  9.             //调用http时启用该设置
  10.             //AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
  11.             //添加gRPC客户端服务
  12.             services.AddGrpcClient<UserInfo.UserInfoClient>(options =>
  13.             {
  14.                 //设置gRPC的https服务调用地址
  15.                 options.Address = new Uri("https://localhost:7149");
  16.             }).ConfigureChannel(grpcOptions =>
  17.             {
  18.             });
  19.             #endregion
  20.             //构建容器
  21.             IServiceProvider serviceProvider = services.BuildServiceProvider();
  22.             //解析UserIoc服务
  23.             var grpcRequestTest = serviceProvider.GetService<UserIoc>();
  24.             //调用UserIoc服务中的GetUserInfo方法
  25.            txtMsg.Text= grpcRequestTest.GetUserInfo();
  26.             #endregion
  27.         }
复制代码
5.新开一个Visual Studio 2022,打开Demo.GrpcService解决方案,并在Visual Studio 2022的解决方案资源管理器中,将Demo.GrpcService项目设为启动项目。按F5,启动。如图。

 

6.在第一个Visual Studio 2022中,我们按F5,将Grpc.Demo.Client运行起来。然后点击“Ioc用户信息”按钮,实现Ioc调用grpc的方法 。如图


 

来源:https://www.cnblogs.com/chillsrc/p/18238421
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具