MethodBase.GetCurrentMethod()反射线解释

时间:2012-06-04 19:59:17

标签: c# reflection syntax .net-3.5

我正在从C ++过渡到C#,我有一个令我困惑的方法调用。我想我可能会猜到它的作用,但我很欣赏专家直接告诉我的事情:

WDResult returnValue = (WDResult)Invoke(
    (MethodInfo)MethodBase.GetCurrentMethod(),
    new object[] { request, loadType });

在我看来,它使用反射来调用已经被调用的方法。我不明白为什么如果是这样的话就会这样做。另外,为什么你会用反射而不仅仅是递归调用呢?请注意,在代码中,调用中未使用不同的重载。参数request和loadType几乎直接传递到它出现的函数的第一行中的代码中。

2 个答案:

答案 0 :(得分:3)

这是一种自定义Invoke()方法,需要MethodInfo 这不是标准的反思。

查看Invoke()方法,了解他们为何会这样做。

答案 1 :(得分:1)

  

另外,为什么要用反射而不仅仅是递归调用呢?

您可以将该行复制粘贴到其他方法中,只要它们采用相同的参数,它仍然有效。