使用反射获取实际返回类型形式 任务<列表<字典<字符串,对象>>> 而不是对象



我试图获得包含在列表中的实际对象,该列表本身包含在任务中。

。方法具有以下签名,例如:

public async Task<List<Dictionary<string,object>>> GetData()

我现在用的是这样的:

var member = type.GetMembers()[0];
var returntype = member.ReturnType.GetGenericArguments();
var temp = member.ReturnType.GetGenericArguments()[0];
if (temp.GetGenericArguments().Count() > 0)
{
    temp.GetTypeInfo().GetGenericArguments();
    var innerttype = temp.GetGenericArguments()[0].FullName;
}

目前上面的代码(这是不完整的,但只是从实际代码的摘录)返回系统。object作为全名而不是Dictionary。

欢迎提出任何解决这个问题的建议。

如果你声明你的字典是<string, object>类型,并且只在其中插入对象,而不是在图中更高级的对象,那么你只会从中得到object类型的对象。

如果你在那里存储了各种各样的东西,并且需要获得它们的具体类型以便与它们交互,那么首先尝试使它们都符合一个接口。然后,将接口类型替换为"object"。如果这不起作用,可以使用泛型。但是,为了能够与它交互,您仍然需要提前知道该类型。

如果你真的不知道里面有什么,想要动态地挖掘它,这正是构建反射的目的。您也可以查看dynamic类型

相关内容

  • 没有找到相关文章