首页 新闻 会员 周边

C#AOP Castle.DynamicProxy.IInterceptor 有会用的老板吗

0
悬赏园豆:5 [待解决问题]

有一个小问题

就是我用的Redis 只能存取list

直接取list肯定不行 因为他是反射的类

我该怎样把这个list赋值给他 现在会报错 类型无法转换

我该怎么样赋值给 invocation.ReturnValue

系统。InvalidCastException:无法转换类型为'System. threading . tasks . task ' 1的对象。对象]'键入'System.Threading.Tasks.Task ' 1[Api.RequestJson]'。

可红包 谢谢老板们

园友2288976的主页 园友2288976 | 初学一级 | 园豆:12
提问于:2022-09-14 16:10
< >
分享
所有回答(1)
0

贴代码。。

去海边生活 | 园豆:66 (初学一级) | 2022-09-14 16:48

代码有点多 老板 要不我发给你
具体的是因为我存到redis是个json数组 取出来之后在赋值给invocation.ReturnValue 就会出现类型报错

应该把我取出来的json数组 赋值给 第二图的Data 然后在整体invocation.ReturnValue=RequestJson

这个类

![](https://img2022.cnblogs.com/blog/2288976/202209/2288976-20220914165435549-1354775818.png)

支持(0) 反对(0) 园友2288976 | 园豆:12 (初学一级) | 2022-09-14 16:56

支持(0) 反对(0) 园友2288976 | 园豆:12 (初学一级) | 2022-09-14 16:59

@22222220: 你保存的是字符串,Redis取到的也是字符串,需要将字符串序列号一下赋值。

支持(0) 反对(0) s_p | 园豆:138 (初学一级) | 2022-09-15 10:22

@s_p: 但是我的Data是一个object类型啊 我反射获取到data 给他setvalue一下 可以赋值上,

但是 invocation.ReturnValue= 转换还是失败 老板可不可以加一下你的微信

object response;
var cc = cli.Get("123"); //1.取到的redislist数据
if (cc != null)
{
var type = invocation.Method.ReturnType;
var resultTypes = type.GenericTypeArguments;
var resultType = resultTypes.FirstOrDefault();
var c= resultType.GetProperties();//C[1].SetValue 是反射Data的 给他赋值

            object obj = Activator.CreateInstance(resultType);//2.new 函数
            c[1].SetValue(obj, cc);
        
            response = Task.FromResult(c);//3.新的类赋值 得到的数据   RequestJson类

            invocation.ReturnValue = response;  //这里 会报转换RequestJson失败
            return;
        }
支持(0) 反对(0) 园友2288976 | 园豆:12 (初学一级) | 2022-09-15 10:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册