1.问题

其实元数据proto里是有定义message,但是 这个message的定义是在另一个 proto文件内,被 api.proto导入,事实上 我是对 api.proto

进行命令行生成代码的(命令:F:\Coding\test-gRPC-generate\ConsoleApp1\packages\Grpc.Tools.1.13.0\tools\windows_x86\protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1\api\api.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packages\Grpc.Tools.1.13.0\tools\windows_x86\grpc_csharp_plugin.exe)

:所以被import的proto内message定义并未生成出来。

2.解决方法:

手动分批次执行命令,将 其他的proto文件定义的内容生成出来。

i.e:

//C:\Users\DELL\Desktop\ConsoleApp11\packages\Grpc.Tools.1.13.0\tools\windows_x86\protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1\api\api.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packages\Grpc.Tools.1.13.0\tools\windows_x86\grpc_csharp_plugin.exe

//C:\Users\DELL\Desktop\ConsoleApp11\packages\Grpc.Tools.1.13.0\tools\windows_x86\protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1\core\Contract.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packages\Grpc.Tools.1.13.0\tools\windows_x86\grpc_csharp_plugin.exe

//C:\Users\DELL\Desktop\ConsoleApp11\packages\Grpc.Tools.1.13.0\tools\windows_x86\protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1\core\Discover.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packages\Grpc.Tools.1.13.0\tools\windows_x86\grpc_csharp_plugin.exe

//C:\Users\DELL\Desktop\ConsoleApp11\packages\Grpc.Tools.1.13.0\tools\windows_x86\protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1\core\Tron.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packages\Grpc.Tools.1.13.0\tools\windows_x86\grpc_csharp_plugin.exe

//C:\Users\DELL\Desktop\ConsoleApp11\packages\Grpc.Tools.1.13.0\tools\windows_x86\protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1\core\TronInventoryItems.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packages\Grpc.Tools.1.13.0\tools\windows_x86\grpc_csharp_plugin.exe

GRPCTools会自动识别 不同内容的 Proto,生产不同的 .cs文件。

3.

使用生成好的代码:

i.e:

  static void Main(string[] args)
{
Channel channel = new Channel("127.0.0.1:9007", ChannelCredentials.Insecure); var client = new Wallet.WalletClient(channel);
//var reply = client.CreateAccount();
}

  

请保留原文链接:https://www.cnblogs.com/x-poior/p/9266103.html

【gRPC使用问题2】按照问题1操作生成出来的代码,import的proto内定义的message未生成出来的更多相关文章

  1. java文件夹相关操作 演示样例代码

    java文件夹相关操作 演示样例代码 package org.rui.io; import java.io.File; import java.io.FilenameFilter; import ja ...

  2. 【gRPC使用问题1】gRPC的proto内import其他proto导致的一次小坑

    1.对于一些proto里面的定义,如果包含了 引入其他proto文件的 proto文件来说,生成的时候要注意.尤其是 引入的是官方框架内的 proto文件,如果自己没有提供的话,生成代码会报错! 具体 ...

  3. 30个php操作redis经常用法代码样例

    这篇文章主要介绍了30个php操作redis经常用法代码样例,本文事实上不止30个方法,能够操作string类型.list类型和set类型的数据,须要的朋友能够參考下 redis的操作非常多的,曾经看 ...

  4. python语言(三)文件修改、函数、json操作、监控日志代码、高效读取文件

    1.文件操作(2)   代码 f = open('a.txt','a') # "a" 如果源文件不在,会自动创建 f.write('abc') result = f.read() ...

  5. Git操作之码云代码clone

    安装Git https://git-scm.com/book/zh/v2/起步-安装-Git Git的网站上有详细的分各种系统的安装教程. 配置Git 1. 打开你要放置项目的本地路径,右键选择$ G ...

  6. Arduino - 串口操作函数与示例代码大全

    来源:https://blog.csdn.net/iracer/article/details/50334041 Arduino - 串口操作函数与示例代码大全 本文总结了Arduino常用串口操作函 ...

  7. PHP文件读写操作之文件写入代码

    在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发 ...

  8. 使用jQuery操作Cookies的实现代码

    Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是 ...

  9. 19.3.20 cmd操作:1.dir查看当前文件夹内的文件;2.alt+space+c关闭cmd窗口

    cmd操作记录: 1.dir:查看当前文件夹内的所有文件: 2.alt+space+c:关闭打开的cmd窗口:

随机推荐

  1. mac+windows下从git上拉取项目及运行

    一.Mac下从git拉取项目 1. 拉项目 打开终端,先进入想放置项目的目录.假设进入workfile目录,输入cd workfile. 进入workfile目录后:输入git clone 链接(gi ...

  2. jquery实现分页+单删批删

    //定义一个分页的方法 public function fenye(){ //查询满足条件的总条数 $count = M("regis")->count(); //设置每页显 ...

  3. python中求两个List的交集、并集和差集

    直接上代码,有三种方法,第三种调用库函数效率最高 # ! /usr/bin/env python # encoding:utf-8 if __name__ == '__main__': a = [1, ...

  4. 全面对比T-SQL与PL/SQL

    1)数据类型 TSQL PL/SQL numeric(p,s) numeric(p,s) or NUMBER(p,s) decimal(p,s) decimal(p,s) or NUMBER(p,s) ...

  5. Delphi动态调用C++写的DLL

    c++ DLL 文件,建议用最简单的c++编辑工具.不会加入很多无关的DLL文件.本人用codeblocks+mingw.不像 VS2010,DLL编译成功,调用的时候会提示缺其他DLL. 系统生成的 ...

  6. 19.Observales

    然后 ng serve看看能不能启动 OK

  7. BlurZoomGallery一个完美下拉进入大图模式

    BlurZoomGallery一个完美的Gallery和view的事件处理,下拉放大的时候gallery不断的在添加高度,gallery效果在放大,实现下拉进入大图模式,view滑动事件和galler ...

  8. 2.1、CDH 搭建Hadoop在安装(为Cloudera Manager配置存储库)

    步骤1:为Cloudera Manager配置存储库 使用包管理工具安装Cloudera Manager yum 对于RHEL兼容系统, zypper对于SLES,和 apt-get对于Ubuntu. ...

  9. Unity&UGUI

    UI:User Interface 用户交互接口,处理用户与程序直接的交互 新建一个UI控件,都会同时新建两个物体: --Canvas:画布,所有的UI控件都必须放到画布上 --EnventSyste ...

  10. maven项目下出现java.lang.ClassNotFoundException: ContextLoader异常

    原因:出现此异常是因为tomcat的webapp目录下没有lib文件. 解决方案: 1.右键点击项目--选择Properties选择Deployment Assembly,在右边点击Add按钮,在弹出 ...