Google protobuf 3:弃用了一个字段,但无法删除依赖项?
Google protobuf 3: deprecated a field, but cannot remove the dependencies?
我有一个依赖于原型 B 的原型 A。然后我弃用了字段 protoB:
import "protoB.proto";
message ProtoA {
string assignmentStatus = 1;
protoB proto_b = 2 [deprecated = true];
}
我认为在这种情况下我应该能够删除 import
语句,对吗?但是当我这样做时,编译器抱怨没有导入依赖项。
这是怎么回事?
将某些内容标记为已弃用只是...将其标记为已弃用;例如,在 C# 中,proto_b
成员将被声明但标记为 [Obsolete]
。由于它仍然存在,因此它需要知道将其描述为什么。例如,数据仍然可以在您的应用程序中访问。
如果您想删除它:删除它:
message ProtoA {
string assignmentStatus = 1;
// field 2 *was* protoB proto_b = 2, now removed
}
(留下评论很重要,可以避免人们不小心重复使用字段编号,这可能会导致预先存在的数据出现问题)。
我有一个依赖于原型 B 的原型 A。然后我弃用了字段 protoB:
import "protoB.proto";
message ProtoA {
string assignmentStatus = 1;
protoB proto_b = 2 [deprecated = true];
}
我认为在这种情况下我应该能够删除 import
语句,对吗?但是当我这样做时,编译器抱怨没有导入依赖项。
这是怎么回事?
将某些内容标记为已弃用只是...将其标记为已弃用;例如,在 C# 中,proto_b
成员将被声明但标记为 [Obsolete]
。由于它仍然存在,因此它需要知道将其描述为什么。例如,数据仍然可以在您的应用程序中访问。
如果您想删除它:删除它:
message ProtoA {
string assignmentStatus = 1;
// field 2 *was* protoB proto_b = 2, now removed
}
(留下评论很重要,可以避免人们不小心重复使用字段编号,这可能会导致预先存在的数据出现问题)。