小白问个问题,如何将字符串转成类名用于泛型

qq_30881623 2015-08-27 01:51:51
我的需求是这样的
有一堆类ClassA,ClassB...
有个泛型函数MyFunc<T>()
现在需要根据字符串"ClassA"调用MyFunc<ClassA>,请问可以实现吗?如果不能,有没有替代方案?
...全文
329 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
_螺丝起子 2017-03-20
  • 打赏
  • 举报
回复
解决了么 我今天也遇到了同样的问题 在想解决办法
  • 打赏
  • 举报
回复
你这种还不如用工厂方法来获取对应的ConfigManager呢
qq_30881623 2015-08-27
  • 打赏
  • 举报
回复
再说详细点 有一堆配置数据类,ConfigA,ConfigB,ConfigC等等 有一个管理类ConfigManager ConfigManager里有个函数List<T> LoadConfig<T>(),作用是根据T(ConfigA,B,C)生成Config的List返回,函数已经实现好了 现在我想在ConfigManager里从{“ConfigA”,“ConfigB”,“ConfigC”}这里面依次拿到类名然后调用LoadConfig<ConfigA>(),LoadConfig<ConfigB>(),LoadConfig<ConfigC>()这样 Type.GetType获得的是一个Type,并不能写在LoadConfig<T>()的T里
gw6328 2015-08-27
  • 打赏
  • 举报
回复
Type t=Type.GetType("类名")
随心2023 2021-06-19
  • 举报
回复
@gw6328 这样t不能传入反射的,List&lt;T&gt;
  • 打赏
  • 举报
回复
通过反射可以做到,不过类需要指定命名空间。
还有,能否根据“对象”,而不是“类”来判断,根据typeof(对象)取得类型
Poopaye 2015-08-27
  • 打赏
  • 举报
回复
请用反射调用
winnowc 2015-08-27
  • 打赏
  • 举报
回复
MethodInfo上有MakeGenericMethod,你反射拿到ClassA 的类型和 MyFunc的MethodInfo,通过MakeGenericMethod传递ClassA 的类型,返回的MethodInfo就可以调用了。
  • 打赏
  • 举报
回复
不可能的,这是编译时的东西 至于替代方案,就这么点内容无法推断

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧