我要制作并发送EventData
具有在 EventData.Properties 中设置的各种特定于应用程序的属性的对象字典。 Properties
字典本身定义为 IDictionary<string, object>
这意味着我可以传递任何数据类型作为值。
var eventData = new EventData(bytes);
eventData.Properties["Prop1"] = // string?
eventData.Properties["Prop2"] = // int?
eventData.Properties["Prop3"] = // DateTime?
eventData.Properties["Prop4"] = // Custom?
我实际上允许将哪些数据类型传递到 Properties
字典?显然,这些数据需要以某种方式序列化,但文档没有提及任何相关内容。
最佳答案
跟进 Chris 的回答 - AMQP header 根据 AMQP 类型规范进行序列化 - http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html .
对于查看此答案的任何 Java 开发人员 - 您可以使用 Apache qpid 库来执行编码/解码操作。解码器类可以在这里找到 - https://qpid.apache.org/releases/qpid-proton-j-0.33.1/api/index.html .
EH 服务与编码无关,因此通过 Kafka 协议(protocol)读取的消费者需要手动解码 AMQP header 。 native EH 客户端将为您解码 header 。请参阅 - https://github.com/Azure/azure-event-hubs-for-kafka/issues/56 .
关于azure - Azure 事件中心事件属性如何序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56708294/