azure - Service Fabric IServiceRemotingRequestMessageBody 迭代参数
问题描述
编辑了自定义类型的左侧名称,而不是直接服务结构接口。
我正在尝试编写一个能够询问传递给远程服务的参数的拦截器。一旦 IServiceRemotingRequestMessage 到达服务并能够提取参数,我就可以拦截它,但前提是我当时知道参数的位置和名称。[伪] var someParam = IServiceRemotingRequestMessageBody.GetParameter(0, "request", serviceRequestInfo.RequestMessage.GetBody().GetType());
我需要的是一种简单地迭代参数并直接使用它们的方法(目前只是将它们序列化为一个字符串,以便我可以记录一些正在传递的信息)。但是,IServiceRemotingRequestMessageBody 只公开了一个必须传递索引和名称的 GetParameter 方法......
考虑到方法名称和服务合同,我也许可以做一些反思工作,但我希望有一种更直接的方法可以直接得到它。
感谢您的任何提示,威尔
解决方案
使用默认序列化可能有一种更简单的方法,但我目前解决它的方法是用 JSON 序列化替换 Service Fabric 序列化提供程序。然后,我的拦截器可以根据需要使用 JSON 数据。
我假设有一种方法可以使用默认序列化执行类似的操作,但如果是这样,则没有明确记录如何使用它。如果有人提出一个选项,我很乐意试一试。
推荐阅读
- service - 定义 gRPC RPC
- c# - c# WebClient DownloadFileAsync() 不会抛出错误
- python - 使用 mysql 时规范 url 的问题
- google-smart-home - 谷歌智能家居通过用户调用“同步”意图
- python - pyodbc vs ADO 通过 COM 用于 Python 脚本
- android - 如何在启动画面中显示动画 GIF?
- google-cloud-platform - Google Dataprep 与消息代理的集成
- symfony - Websocket 在订阅时断开连接
- variables - RobotFramework - 在不同的环境中运行测试
- javascript - 运行 webpack 时有效正则表达式中的意外令牌