【发布时间】:2016-08-24 07:12:30
【问题描述】:
TL;DR
根据文档,如果我使用 C++,我可以使用 string value = MyMessage::descriptor()->options().GetExtension(my_option); 读取自定义选项的值。 Java 和 Python 也有类似的示例。但我正在做 C#,我可以找到一个等价物。我可以做吗?如果可以,怎么做?
更多详情
我正在处理使用protobuf3 生成的类。这些模式声明了custom option。它看起来像这样:
import "google/protobuf/descriptor.proto";
extend google.protobuf.MessageOptions {
string my_option = 51234;
}
message MyMessage {
option (my_option) = "Hello world!";
}
我的代码被提供了一个从MyMessage 生成的对象,我想读取这个选项的值(这里是Hello world!)
更新:我没有使用 protobuf-net。现在 protobuf 原生支持 C#,我正在使用 Google 的 protobuf3 C# 库。
【问题讨论】:
-
@Sinatr 嗯,你为什么这么认为?在我看来,这似乎是一个写得很清楚且不同的问题。自定义选项是一种高级 protobuf 功能,不经常使用,但非常有用。此外,这似乎与 Google 的 protobuf3 C# 库有关,而不是 protobuf-net。
标签: c# protocol-buffers