我正在使用最新版本的 protobuf-net 与 VS2008 集成。我在 1 个原型文件中创建了 2 条消息(Message1 和 Message2),1 条消息。当我尝试在 Message1 中引用 Message2 时,代码生成器工具给我错误“Message2”未定义并且不会生成代码文件。两条消息的包是相同的。
看起来是这样的,因为该工具与 VS2008 集成,它希望编译同一 .proto 文件中的所有消息。目前我必须在 Message1.proto 文件中粘贴一条同名的空消息,如下所示:
message Message1 {
optional Message2 message2 = 1;
}
message Message2 {
}
然后稍后删除class Message2
from的声明Message1.cs
。是否需要进行任何设置以避免此错误,或者提供空声明是唯一的方法?或者如果没有,那么我建议你(Marc Gravell)包含一个像“extern”这样的关键字来告诉编译器这种类型的定义在另一个类中可用