C#反射执行方法返回List,怎么获取List

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#反射执行方法返回List,怎么获取List相关的知识,希望对你有一定的参考价值。

我有一系列按照一定规则命名的类,现在利用类名反射执行方法,其中一个方法返回的是List<类名>的list列表。但是反射方法返回的都是object,怎么把这个object转换为List。注:此处类名为string类型,不能找到对应的类。
问题已解决很久了,突然看见这个,把答案贴出来,有类似问题的可以参考一下。
foreach (object o in (IEnumerable)listModel)

//do something

参考技术A list datas= object as list; //一定要你对应的类型
if(datas!=null)

转换成功,可以用datas
追问

没有对应类型,类型是变化的

追答

不知类型,你怎么转,你再是变化的,但业务决定到某个时间点,也是必需有类型的。

那你只能一个个判断
list datas= object as List; //一定要你对应的类型
if(datas!=null)

转换成功,可以用datas


list datas= object as string; //一定要你对应的类型
if(datas!=null)

转换成功,可以用datas

....

追问

那我还用个屁的反射

参考技术B IEnumerable vvv = obj as IEnumerable;
用这个可以将反射返回的object转化成集合的方式。
然后就可以foreach这个东西了。本回答被提问者采纳

以上是关于C#反射执行方法返回List,怎么获取List的主要内容,如果未能解决你的问题,请参考以下文章

C#怎样定义返回值为List的方法

java里如何根据类名(String)返回类

惊喜!java反射调用方法返回list

c#的反射问题 --- 通过反射得到方法中的返回值怎么做?

从查询 C#、EF Core 返回一个值

C#可以编写一个方法对T表查询并返回List<T>吗