gRPC入门学习之旅(三)
2.3、创建自定义服务
除上面的模板中自带的一个gRPC服务之后,我们再创建一个自己的服务,我将创建一个用户信息gRPC服务,主要功能有三个,登录、获取用户信息、修改用户信息。
- 创建UserInfo.proto协议文件
- 在“解决方案资源管理器”中,使用鼠标左键选中“Protos”文件夹,然后在菜单栏上,依次选择“添加-->新建项”。如下图。

- 在“添加新项”对话框中,选择“ASP.NET Core-->常规”节点,然后选择“协议缓冲区文件”项。
- 在“名称”文本框中,输入 UserInfo.proto,然后选择“添加”按钮。如下图。

4.Visual Studio 2022会在Protos目录中添加一个UserInfo.proto协议文件。如下图。

5.这个UserInfo.proto文件中的代码如下:
syntax = "proto3";
option csharp_namespace = "Demo.GrpcService.Protos";
//包名
package user;
//服务名称
service UserInfo{
//方法名称
rpc GetUserInfo (UserInfoRequest) returns (UserInfoResult);
rpc Login(UserInfoRequest) returns(UserInfoResult);
rpc Save(UserInfoRequest) returns (UserInfoResult);
}
//请求的参数对象
message UserInfoRequest{
string UserName = 1;
string Password=2;
}
//请求响应的对象
message UserInfoResult{
string UserName = 1;
string Password=2;
int32 Age = 3;
string Tel=4;
string Name=5;
int32 Sex=6;
string City=7;
bool IsLogin=8;
}
- 添加userinfo.proto协议文件的关联配置
6.在“解决方案资源管理器”中,使用鼠标左键选中项目名称“Demo.GrpcService”,然后使用鼠标双击这个名称,Visual Studio 2022将在文本编辑器中打开项目文件。 如下图。

7. 在文本编辑器中找到ItemGroup节点,在ItemGroup节点中增加如下配置:如下图。

<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Server" />
<Protobuf Include="Protos\UserInfo.proto" GrpcServices="Server" />
</ItemGroup>
8.在“解决方案资源管理器”中,使用鼠标左键选中项目名称“Demo.GrpcService”,然后单击鼠标右键,在弹出的快捷菜单中选择“重新生成”菜单项。如下图。

7.我们打开“文件资源管理器”,进入到Demo.Grpc.Service\obj\Debug\net7.0\Protos目录,发现此时目录下比刚才多了2个.cs文件,就是我们自己定义的UserInfo.proto协议文件对应的类文件,如下图所示:

gRPC入门学习之旅(三)的更多相关文章
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- Hadoop学习之旅三:MapReduce
MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...
- 滴滴Booster移动APP质量优化框架 学习之旅 三
推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 滴滴Booster移动App质量优化框架-学习之旅 二对重复资源 ...
- Java超简明入门学习笔记(三)
Java编程思想第4版学习笔记(三) 第五章 初始化与清理(构造器和垃圾回收机制) Java有和C++类似的构造函数来为新创建的对象执行初始化及完成一些特殊的操作,有的类数据成员可能会 ...
- python入门学习笔记(三)
10.函数 求绝对值的函数 abs(x) 也可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息.调用 abs 函数:>>> abs(100)100>>& ...
- Ext入门学习系列(三)复杂自定义窗体
通过前2节的学习,基本掌握了Ext的语法和运行原理,可以作出一些简单的应用.本节我们一起来完成复杂点的对话框操作,因为在实际项目中经常要用到确认对话框等多种操作,然后根据客户的选择作出不同的响应. 一 ...
- Spring学习之旅(三)--装配Bean
装配 Bean 的方式 在 XML 中进行显式配置 在 Java 中进行显式配置 隐式的 Bean 发现机制和自动装配 Spring 提供了以上三种方式进行 Bean 的配置,可以根据自己的需求选择一 ...
- struts2学习之旅三 权限管理和导航设计
1,权限管理的db设计和dao实现,尽量简单快速有效: db的设计如下:权限按照角色来赋给用户: 权限对应每一个具体的功能,有菜单级别的,有导航级别的,还有页面级别的功能: 涉及到权限的敏感操作一般都 ...
- WorkerMan 入门学习之(三)基础教程-Timer类的使用
1.ServerTimer.php 代码: <?php /** * 定时器学习 */ require_once __DIR__ . '/Workerman/Autoloader.php'; us ...
- Egret入门学习日记 --- 第三篇 (书中 3.4 内容)
第三篇 (书中 3.4 内容) 今天还是要把昨天项目运行后,EXML文件里的界面没有出现的问题解决了才行. 去了群里,没人回.去了官网看文档,看不懂. 不过倒是看到了一个好东西: 还挺便宜啊,一个月要 ...
随机推荐
- 从零开始的react入门教程(十一),react ref 详解,三种写法与 ref 转发(传递)
壹 ❀ 引 在前面的文章中,我们介绍了react的状态提升,随之引出了redux以及context,其实都说到底都是为了方便管理react的状态,让数据交互与组件通信变得更为简单.我们知道,react ...
- NC22594 Rinne Loves Graph
题目链接 题目 题目描述 Island 发生了一场暴乱!现在 Rinne 要和 Setsuna 立马到地上世界去. 众所周知:Island 是有一些奇怪的城镇和道路构成的(题目需要,游戏党勿喷),有些 ...
- Goland 使用[临时]
环境变量 因为module模式的引入, 多个项目可以共用同一套External Libraries, 在File->Settings->Go中, 设置GOROOT为go安装目录, 例如 / ...
- 【Unity3D】UI Toolkit元素
1 前言 UI Toolkit简介 中介绍了 UI Builder.样式属性.UQuery.Debugger,UI Toolkit容器 中介绍了 VisualElement.ScrollView. ...
- SpringBoot+Shiro+LayUI权限管理系统项目-9.核心知识点总结
1.说明 本篇讲一下本项目几个重要的知识点,详细看源码,文章下方捐赠或QQ联系捐赠获取. 2.Shiro如何设置密码加密算法 1.在shiro配置文件中添加: @Bean public HashedC ...
- 编译原理LR分析
LR(0)分析存在问题及解决办法 当LR(0)含有互相冲突的项目时,则需要向前展 望符号串,检查下一个输入符号的状态 例 项目集I={X→α· bβ,A→α·,B→α· } 当面临输入符号b时,应该选 ...
- 如何在Windows上使用Git创建一个可执行脚本?
长话短说,今天介绍如何在windows上使用Git上创建一个可执行的shell脚本. 首先我们要知道windows上Git新添加的文件权限是:-rw-r--r--(对应权限值是644),而通常创建的s ...
- 用Docker搭建DNS服务器
0.准备工作 如果是全新安装的服务器,先要给root账户设置密码,命令是 sudo passwd root 然后切换到root账户 su root 上述过程屏幕输出如下 1.Docker-Compos ...
- 【Azure 应用服务】App Service - 在修改应用服务计划的页面中,为什么无法查看到同一个资源组下面的其他应用服务计划(App Service Plan)呢?
问题描述 在App Service的门户上,可以通过"Change App Service Plan"来改变当前App Service所属的应用服务计划(App Service P ...
- 【Azure 应用服务】可以在app service里建SFTP服务吗?
问题描述 怎样可以在App Service里建SFTP服务? 并不是说通过FTP的方式进行App Service的文件部署. 问题回答 不能通过 App Service 来搭建总计的SFTP服务,因为 ...