c# - 从另一个项目导入链接的 .proto 文件
问题描述
我有一个这样的解决方案:
如您所见,通过将其添加到我的 .csproj 文件中,我已成功地将 service.proto 链接到我的 OrchestrationServer 项目中:
<Protobuf Include="..\RequestHandler\Protos\service.proto" GrpcServices="None" ProtoRoot="..\RequestHandler\Protos\"/>
我现在的问题是,我怎样才能将它实际导入我的 orchestrator.proto 文件中?我已经尝试了各种路径,但没有任何运气。目前,这两个 .proto 文件看起来像这样
Orchestrator.proto:
syntax = "proto3";
option csharp_namespace = "OrchestratorService";
package test;
import "service.proto";
service Orchestrator
{
rpc EnqueueRequest(G_NewRequest) returns (G_NewResponse) { }
}
message G_NewRequest{
string originId = 1;
oneof request_type{
G_RequestType1 request1 = 2;
G_RequestType2 request2 = 3;
}
}
message G_NewResponse{
string response = 1;
}
服务原型:
syntax = "proto3";
option csharp_namespace = "RequestHandlerService";
package test;
service Handler
{
rpc AddItem1(G_RequestType1) returns (G_NewResponse) { }
rpc AddItem2(G_RequestType2) returns (G_NewResponse) { }
}
message G_RequestType1{
string request = 1;
}
message G_RequestType2{
string request = 1;
}
message G_NewResponse{
string originId = 1;
string response = 2;
}
目前,orchestrator.proto 中针对 service.proto 中引用的类型引发了错误。任何帮助将非常感激。此外,如果有人可以列出在 proto 文件声明不同的包时所需的额外步骤,那也很棒。
解决方案
推荐阅读
- ansible - 使用 Ansible Tower 针对 Openstack 运行 playbook
- javascript - 将文件拖放到特定目标
- c++ - std::string 构造函数如何处理固定大小的 char[]?
- c# - 如何使用 C# 本地化在 Selenium WebDriver 中不断更改其 ID 中的数字的元素?
- javascript - 将数据从原生 android 应用程序发送到 Ionic 本地索引文件
- javascript - 来自 JSON 对象列表的 Charts.js 中的堆积条形图
- ffmpeg - Discord.NET 1.0.2 将语音发送到语音通道不起作用
- azure - 如何为 Azure CLI 使用 Powershell splatting
- amazon-web-services - AWS S3 跨区域复制删除操作行为的状态
- r - 是否有可能一次关闭 R 脚本中的所有代码中断?