2016-05-15 11 views
0

Ich habe eine Reflexion mit ILSpy von System.Web.MVC.dll und fand den folgenden Code aus:Wie funktioniert HtmlHelper.AnonymousObjectToHtmlAttributes hinter den Kulissen? (Methode nennt sich selbst)

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

Kann mir jemand helfen zu verstehen, was genau hier passiert? Dies sollte zu einer StackOverflow-Ausnahme führen, tut dies jedoch nicht.

+0

Was lässt Sie denken, dass es eine "StackOverflowException" auslösen würde? Die Methode ruft die 'AnonymousObjectToHtmlAttributes()' Methode der 'HtmlHelper' Klasse –

+0

@Stephen Mücke auf. Sie ruft sich selbst auf. –

+2

Wo? Dies ist der [Quellcode] (https://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/HtmlHelper.cs) für 'HtmlHelper'. Die Methode, die Sie gezeigt haben, ist kein Code in der 'HtmlHelper' Klasse. Es ist in einer anderen Klasse, die die 'AnonymousObjectToHtmlAttributes (htmlAttributes)' statische Methode von 'HtmlHelper' aufruft. Sie haben zufällig denselben Namen. –

Antwort

0

Wie Stephen Mücke oben kommentiert, ruft die Methode AnonymousObjectToHtmlAttributes von System.Web.MVC.HtmlHelper eine Methode mit dem gleichen Namen, aber von System.Web.WebPages.Html.HtmlHelper.

Das ILSpy ist nicht explizit darüber. Ich brauchte die Klasse zu schweben aus zu zeigen, wo es kommen würde:

ILSpy

Ich bin nicht die erste mit diesen doubt, es ist ein häufiger Fehler gemacht werden, glaube ich.

Verwandte Themen