• 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 文件中的 元素如下所示:

    复制代码
     
      <ItemGroup>
    
        <Protobuf Include="..\Demo.GrpcService\Protos\UserInfo.proto" GrpcServices="Client">
    
          <Link>Protos\UserInfo.protoLink>
    
        Protobuf>
    
      ItemGroup>
    复制代码

     

  • 相关阅读:
    【电商营销】了解“客户旅程”,提高客户忠诚度
    (多线程)并发编程的三大基础应用——阻塞队列、定时器、线程池【手搓源码】
    森林安全新保障:智能高压应急消防泵的应用
    农大毕业7年后,转行软件测试,我拿到了一块结实的敲门砖
    Flask 学习-21. 项目配置通过.env环境变量启动开发/生产环境
    centos7上安装 apache-tomcat-mysql
    【Python】第十二课 网络爬虫
    uniapp:动态修改页面标题
    这些基本语法规则你还不知道?那你的Python还没入门...
    NeurIPS 2022|基于神经微分方程理论可以帮助我们训练更加深层次的ResNet网络
  • 原文地址:https://www.cnblogs.com/chillsrc/p/18185818