首页 > Web开发 > 详细

使用dapr .net Client SDK 踩过的坑(持续更新)

时间:2021-06-16 14:47:54      阅读:25      评论:0      收藏:0      [点我收藏+]

1、服务调用 Service invocation

InvokeMethodAsync方法,如果带请求参数,那么请求参数的泛型必须是对象,如   (stateKeyName为字符串)

 var data = await _daprClient.InvokeMethodAsync<object, ProductModel>("productservice", "Product/GetState", stateKeyName, cts.Token);   //服务调用成功,参数正常传过去了

 var data = await _daprClient.InvokeMethodAsync<string, ProductModel>("productservice", "Product/GetState", stateKeyName, cts.Token);   //服务调用成功,参数没传过去

对应的服务端,接受的参数也必须是object类型,string类型就获取不到参数。

(不一定正确,有待进一步验证,可以看看dapr .NET SDK的源码,附搬到码云的地址  https://gitee.com/arthaslcm/dotnet-sdk)

2、发布订阅

发布:

技术分享图片

 

 订阅:

技术分享图片

 

 如果订阅服务的参数类型直接放发布端传过来的数据类型是不行的,看了源码发现发布的时候数据封装在了一个对象中,所以接受参数的时候需要先解析json字符串取出来。。

上图中订阅端的参数类型可以为object,发布端传的参数放在object.data里,需要自己解析出来。

而源码中订阅的例子中是这样的,照着弄了半天才发现根本行不通啊。。技术分享图片

 

使用dapr .net Client SDK 踩过的坑(持续更新)

原文:https://www.cnblogs.com/arthaslcm/p/14888749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!