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