带有类型参数的反射 GetMethod

Reflection GetMethod with a type paramenter

下一行 运行 不正确,我不确定为什么。错误: System.Reflection.TargetParameterCountException: 参数不匹配签名

有问题的代码行:

typeof(Resources).GetMethod("LoadAll", new Type[] { typeof(System.String), typeof(System.Type)});

显示资源的所有功能class显示:

UnityEngine.Object[] FindObjectsOfTypeAll(System.Type)
T[] FindObjectsOfTypeAll[T]()
UnityEngine.Object Load(System.String)
T Load[T](System.String)
UnityEngine.Object Load(System.String, System.Type)
UnityEngine.ResourceRequest LoadAsync(System.String)
UnityEngine.ResourceRequest LoadAsync[T](System.String)
UnityEngine.ResourceRequest LoadAsync(System.String, System.Type)
UnityEngine.Object[] LoadAll(System.String, System.Type)
UnityEngine.Object[] LoadAll(System.String)
T[] LoadAll[T](System.String)
UnityEngine.Object GetBuiltinResource(System.Type, System.String)
T GetBuiltinResource[T](System.String)
Void UnloadAsset(UnityEngine.Object)
UnityEngine.AsyncOperation UnloadUnusedAssets()
Boolean Equals(System.Object)
Int32 GetHashCode()
System.Type GetType()
System.String ToString()
System.Reflection.MethodInfo[]

我正在尝试匹配 UnityEngine.Object[] LoadAll(System.String, System.Type)。有什么想法可能是什么问题吗?

如果您可以制作一行 returns 特定于给定类型的 "T[] LoadAllT" 的 methodinfo 对象,则会获得奖励。

问题是您试图在 LoadAll 是静态的情况下获取实例级方法。

试试这个:

typeof(Resources).GetMethod("LoadAll", 
                            System.Reflection.BindingFlags.Static,   
                            new Type[] { typeof(System.String),typeof(System.Type)},
                             null);