如何使用C#反射调用具有通用List参数的扩展方法?

矩阵白
static class Extensions
{
    public static string Primary<T>(this T obj)
    {
        Debug.Log(obj.ToString());
        return "";
    }

    public static string List<T>(this List<T> obj)
    {
        Debug.Log(obj.ToString());
        return "";
    }
}

使用反射来调用两个扩展方法

//This works
var pmi = typeof(Extensions).GetMethod("Primary");
var pgenerci = pmi.MakeGenericMethod(typeof(string));
pgenerci.Invoke(null, new object[] {"string"  });

//This throw a "ArgumentException: failed to convert parameters"
var mi = typeof(Extensions).GetMethod("List");
var stringGeneric = mi.MakeGenericMethod(typeof(List<string>));
stringGeneric.Invoke(null, new object[] {new List<string> { "list of string"}, });

我正在使用Unity3d,因此.net版本是3.5

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

你需要传递的类型MakeGenericMethodstring,不是List<string>,因为参数作为T

var mi = typeof(Extensions).GetMethod("List");
var stringGeneric = mi.MakeGenericMethod(typeof(string));
stringGeneric.Invoke(null, new object[] {new List<string> { "list of string"} });

否则,您正在制作一个接受字符串列表列表的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java反射调用具有通用参数的方法

来自分类Dev

反射:调用具有通用参数的方法

来自分类Dev

使用反射调用具有参数的方法

来自分类Dev

如何在Groovy中使用反射调用具有空参数值的方法?

来自分类Dev

调用具有通用参数的方法

来自分类Dev

通过反射调用具有命名参数的方法

来自分类Dev

通过反射调用具有命名参数的方法

来自分类Dev

从子类实例调用具有通用参数的扩展方法

来自分类Dev

使用HashMap和反射来调用具有可变参数类型的方法

来自分类Dev

MissingMethodException调用具有通用参数的方法

来自分类Dev

通过反射调用具有Class <T>类型参数的私有方法

来自分类Dev

通过反射调用具有params参数的泛型方法

来自分类Dev

如何调用具有参数“上下文”的方法

来自分类Dev

使用反射具有参数调用内部类方法

来自分类Dev

如何使用单个按钮单击事件来调用具有不同参数的方法

来自分类Dev

使用左值调用时不使用具有通用引用参数的函数

来自分类Dev

无法使用具有通用扩展号的接口

来自分类Dev

c# - 如何设置使用反射调用的参数的正确顺序?

来自分类Dev

我们可以使用list.map调用具有多个参数的方法吗?

来自分类Dev

C#-如何使用反射来调用带有可变数量参数的静态方法

来自分类Dev

我可以使用强类型反射找到具有通用参数的方法吗?

来自分类Dev

具有多个通用参数的C#方法

来自分类Dev

扩展抽象类,并使用具有不同参数的相同方法

来自分类Dev

从F#调用具有多个参数的C#函数

来自分类Dev

使用动态参数调用通用扩展方法时,C#编译器失败并产生误导性错误

来自分类Dev

结合使用具有通用签名的AutoMoq方法

来自分类Dev

Java Reflection调用具有多个参数的方法

来自分类Dev

Java:调用具有特定类型参数的方法

来自分类Dev

通过PerformSelector iOS调用具有多个参数的方法

Related 相关文章

  1. 1

    使用Java反射调用具有通用参数的方法

  2. 2

    反射:调用具有通用参数的方法

  3. 3

    使用反射调用具有参数的方法

  4. 4

    如何在Groovy中使用反射调用具有空参数值的方法?

  5. 5

    调用具有通用参数的方法

  6. 6

    通过反射调用具有命名参数的方法

  7. 7

    通过反射调用具有命名参数的方法

  8. 8

    从子类实例调用具有通用参数的扩展方法

  9. 9

    使用HashMap和反射来调用具有可变参数类型的方法

  10. 10

    MissingMethodException调用具有通用参数的方法

  11. 11

    通过反射调用具有Class <T>类型参数的私有方法

  12. 12

    通过反射调用具有params参数的泛型方法

  13. 13

    如何调用具有参数“上下文”的方法

  14. 14

    使用反射具有参数调用内部类方法

  15. 15

    如何使用单个按钮单击事件来调用具有不同参数的方法

  16. 16

    使用左值调用时不使用具有通用引用参数的函数

  17. 17

    无法使用具有通用扩展号的接口

  18. 18

    c# - 如何设置使用反射调用的参数的正确顺序?

  19. 19

    我们可以使用list.map调用具有多个参数的方法吗?

  20. 20

    C#-如何使用反射来调用带有可变数量参数的静态方法

  21. 21

    我可以使用强类型反射找到具有通用参数的方法吗?

  22. 22

    具有多个通用参数的C#方法

  23. 23

    扩展抽象类,并使用具有不同参数的相同方法

  24. 24

    从F#调用具有多个参数的C#函数

  25. 25

    使用动态参数调用通用扩展方法时,C#编译器失败并产生误导性错误

  26. 26

    结合使用具有通用签名的AutoMoq方法

  27. 27

    Java Reflection调用具有多个参数的方法

  28. 28

    Java:调用具有特定类型参数的方法

  29. 29

    通过PerformSelector iOS调用具有多个参数的方法

热门标签

归档