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

1.问题

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

进行命令行生成代码的(命令:F:Coding est-gRPC-generateConsoleApp1packagesGrpc.Tools.1.13.0 oolswindows_x86protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1apiapi.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packagesGrpc.Tools.1.13.0 oolswindows_x86grpc_csharp_plugin.exe)

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

2.解决方法:

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

i.e:

//C:UsersDELLDesktopConsoleApp11packagesGrpc.Tools.1.13.0	oolswindows_x86protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1apiapi.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packagesGrpc.Tools.1.13.0	oolswindows_x86grpc_csharp_plugin.exe

//C:UsersDELLDesktopConsoleApp11packagesGrpc.Tools.1.13.0	oolswindows_x86protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1coreContract.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packagesGrpc.Tools.1.13.0	oolswindows_x86grpc_csharp_plugin.exe

//C:UsersDELLDesktopConsoleApp11packagesGrpc.Tools.1.13.0	oolswindows_x86protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1coreDiscover.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packagesGrpc.Tools.1.13.0	oolswindows_x86grpc_csharp_plugin.exe

//C:UsersDELLDesktopConsoleApp11packagesGrpc.Tools.1.13.0	oolswindows_x86protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1coreTron.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packagesGrpc.Tools.1.13.0	oolswindows_x86grpc_csharp_plugin.exe

//C:UsersDELLDesktopConsoleApp11packagesGrpc.Tools.1.13.0	oolswindows_x86protoc.exe -IConsoleApp1 --csharp_out ConsoleApp1  ConsoleApp1coreTronInventoryItems.proto --grpc_out ConsoleApp1 --plugin=protoc-gen-grpc=packagesGrpc.Tools.1.13.0	oolswindows_x86grpc_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

原文地址:https://www.cnblogs.com/x-poior/p/9266103.html