C# HtmlHelper.AnonymousObjectToHtmlAttributes在幕后是如何工作的?(方法调用自身)

C# HtmlHelper.AnonymousObjectToHtmlAttributes在幕后是如何工作的?(方法调用自身),c#,asp.net-mvc,reflection,C#,Asp.net Mvc,Reflection,我使用System.Web.MVC.dll的ILSpy进行了一次反思,发现了以下代码: public static RouteValueDictionary AnonymousObjectToHtmlAttributes(object htmlAttributes) { return HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes); } 有人能帮我了解这里到底发生了什么吗?这应该会导致Stac

我使用System.Web.MVC.dll的ILSpy进行了一次反思,发现了以下代码:

public static RouteValueDictionary AnonymousObjectToHtmlAttributes(object htmlAttributes)
    {
        return HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
    }

有人能帮我了解这里到底发生了什么吗?这应该会导致StackOverflow异常,但不会。

正如Stephen Muecke在上面所评论的那样,System.Web.MVC.HtmlHelper中的方法AnonymousObjectToHtmlAttributes正在调用一个名称相同但来自System.Web.WebPages.Html.HtmlHelper的方法

ILSpy并没有明确提到这一点。我需要在课堂上悬停以显示它来自何处:


我不是第一个这样做的人,我相信这是一个常见的错误。

是什么让你认为它会抛出一个
StackOverflowException
?该方法正在调用
HtmlHelper
class@StephenMuecke它在呼叫自己,在哪里?这是适用于
HtmlHelper
。您显示的方法不是
HtmlHelper
类中的代码。它位于另一个类中,该类调用
HtmlHelper
AnonymousObjectToHtmlAttributes(htmlAttributes)
静态方法。他们只是碰巧同名。@StephenMuecke谢谢!