首页 > 解决方案 > Service Fabric IServiceRemotingRequestMessageBody 迭代参数

问题描述

编辑了自定义类型的左侧名称,而不是直接服务结构接口。

我正在尝试编写一个能够询问传递给远程服务的参数的拦截器。一旦 IServiceRemotingRequestMessage 到达服务并能够提取参数,我就可以拦截它,但前提是我当时知道参数的位置和名称。[伪] var someParam = IServiceRemotingRequestMessageBody.GetParameter(0, "request", serviceRequestInfo.RequestMessage.GetBody().GetType());

我需要的是一种简单地迭代参数并直接使用它们的方法(目前只是将它们序列化为一个字符串,以便我可以记录一些正在传递的信息)。但是,IServiceRemotingRequestMessageBody 只公开了一个必须传递索引和名称的 GetParameter 方法......

考虑到方法名称和服务合同,我也许可以做一些反思工作,但我希望有一种更直接的方法可以直接得到它。

感谢您的任何提示,威尔

标签: azureazure-service-fabric

解决方案


使用默认序列化可能有一种更简单的方法,但我目前解决它的方法是用 JSON 序列化替换 Service Fabric 序列化提供程序。然后,我的拦截器可以根据需要使用 JSON 数据。

我假设有一种方法可以使用默认序列化执行类似的操作,但如果是这样,则没有明确记录如何使用它。如果有人提出一个选项,我很乐意试一试。


推荐阅读