我读到MethodInfo只有关于方法的信息,没有关于来自的实例的信息,但是get实例有一些技巧可以作为该实例的一部分调用该方法吗?
例如:
MethodInfo someMethodInfo;
var obj = GetMethodInstance(someMethodInfo);
someMethodInfo.Invoke(obj, null);
答案 0 :(得分:2)
MethodInfo不与任何实例关联,它会发现方法的属性并提供对方法元数据的访问。
MethodInfo类表示类型的方法。您可以使用MethodInfo对象来获取有关对象表示的方法的信息并调用该方法。
MethodInfo直接反映在Type定义中,因此与该类型的任何特定实例没有任何关系,因此获取方法信息通常必须直接使用typeof()
获取类型(所以甚至没有有一个实例)或首先从obj.GetType()
获取类型定义。
因此,在您尝试获取MethodInfo之前,类型定义已经与原始实例分离,因此如果有一个实例可以获得原始实例将会更难获得。
检查您是否可以使用Delegates进行解决方法,否则请查看获取methodinfo的过程,并在那时通过this
以保留对象的引用,以便您不必首先尝试寻找它。