Apache Thrift 是否提供反射 API?

Igo*_*tis 5 reflection thrift

thrift 是否提供了一种在运行时检查结构体字段的方法?

我的用例是使用 C#,但问题是关于标准 Thrift API。

JT.*_*JT. 1

跨语言没有标准的 Thrift API,因此除了序列化之外你能做的事情高度依赖于语言。如果仅使用反射无法完成您想要的任务,请检查 thrift 编译器为您感兴趣的 thrift 对象生成的代码。我还没有看到 C# thrift 生成的代码,但它可能包含可能包含的其他数据对你有用。

我对 Java 实现非常熟悉,我可以告诉你,在 Java 中使用 thrift 根本不需要使用反射。每个 thrift 生成的类都包含允许解串器根据字段 ID 号重建类的信息。java thrift 编译器创建静态成员和方法,其中包含您想要的几乎所有内容。对于Java来说,它实际上比反射更好,因为它包含列表/映射/集合的元素类型。

现在不能保证这些数据的格式在 thrift 的未来版本中不会改变,但考虑到所有各种协议都依赖于它们,“隐藏”API 应该相当稳定。