reflection - Apache Thrift 是否提供反射 API?

标签 reflection thrift

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

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

最佳答案

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

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

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

关于reflection - Apache Thrift 是否提供反射 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26499981/

相关文章:

c++ - 如何反序列化包含多条记录的文件

java - 如何在 java 中启动一个 thrift 非阻塞服务器?

c# - 数组在.NET4.0中共享内存-反射或StructLayout可以实现吗?

c# - 如何使用反射在 IEnumerable<T> 上调用 System.Linq.Enumerable.Count<>?

java - 在cassandra中存储小文件

java - Windows 上的 Thrift/Google Protocol Buffers

python - 集成测试 : Start a blocking server during `unittest.setUp` before testing it?

java - RMI + java 反射

reflection - 如何强制解包存储为 Any 的可选字符串

c# - 通过反射确定派生类