C# MethodBase.GetCurrentMethod()反射线解释 我正在从C++过渡到C语言,我有一个方法调用让我困惑。我想我也许能猜出它的作用,但我希望专家能直截了当地告诉我: WDResult returnValue = (WDResult)Invoke( (MethodInfo)MethodBase.GetCurrentMethod(), new object[] { request, loadType });

C# MethodBase.GetCurrentMethod()反射线解释 我正在从C++过渡到C语言,我有一个方法调用让我困惑。我想我也许能猜出它的作用,但我希望专家能直截了当地告诉我: WDResult returnValue = (WDResult)Invoke( (MethodInfo)MethodBase.GetCurrentMethod(), new object[] { request, loadType });,c#,reflection,syntax,.net-3.5,C#,Reflection,Syntax,.net 3.5,在我看来,它似乎在使用反射来为已经被调用的方法提供信息。我不明白如果是这样的话,为什么会这样做。还有,为什么要使用反射而不是递归调用呢?请注意,在代码中,调用中没有使用不同的重载。参数request和loadType在它出现的函数的第一行中直接传递到代码中。调用一个自定义的Invoke()方法,该方法采用MethodInfo 这不是标准反射 查看Invoke() 这不是标准反射 查看Invoke()方法以了解他们为什么这样做 还有,为什么要使用反射而不是递归调用呢 您可以将该行复制粘贴到其他方法

在我看来,它似乎在使用反射来为已经被调用的方法提供信息。我不明白如果是这样的话,为什么会这样做。还有,为什么要使用反射而不是递归调用呢?请注意,在代码中,调用中没有使用不同的重载。参数request和loadType在它出现的函数的第一行中直接传递到代码中。

调用一个自定义的
Invoke()
方法,该方法采用
MethodInfo

这不是标准反射


查看
Invoke()
这不是标准反射

查看
Invoke()
方法以了解他们为什么这样做

还有,为什么要使用反射而不是递归调用呢

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

还有,为什么要使用反射而不是递归调用呢


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

感谢您的帮助。:)感谢您的洞察力。:)出于好奇,它是什么?在很多地方都叫它。它接受调用函数中正在执行的任何命令,并以一种通用的方式处理它,以压缩参数(它们很大)、提供加密并分派到rpcapi。我不太确定它在最初的设计中的用途——它看起来更像是一个覆盖所有的补丁——所有的功能都被转发给了这个补丁,参数允许这个补丁在提供压缩/加密/调度的同时动态处理原始请求。我猜RPC api以前没有使用过,它以前是本地调用。不幸的是,在我重新打开visual studio之前,我的“转到定义”由于某种原因无法工作,所以我认为它更复杂:(出于好奇,它是什么?它在许多地方被调用。它接受调用函数中正在进行的任何命令,并以一种通用的方式处理它来压缩参数(它们很大),提供加密,并发送到rpc api。我不太确定它在原始设计中的用途-它看起来更像是一个覆盖所有补丁-所有函数都被转发到了这个,参数允许这个函数在提供压缩/加密/发送的同时动态处理原始请求。我猜我s RPC api过去没有使用,它以前是本地调用。不幸的是,在我重新打开visual studio之前,我的“转到定义”由于某种原因无法工作,因此我认为它更复杂:(