ILSpy(又名.net反射)显示的方法,只是自称,为什么呢?(ILSpy (a.k.a. .NET Reflector) shows a method as just calling itself, why?)

当通过匿名类型像文本框的方法的HtmlHelper,你会得到绑定错误(因为匿名类型成员只有内部访问),除非你使用RouteDataDictionary提取成员

当我看到(的HtmlHelper扩展名)InputExtensions.TextBox方法接受匿名类型,我知道它在内部做一些转换或将失败,并出现相同的错误。

果然,它调用HtmlHelper.AnonymousObjectToHtmlAttributes方法,它的文档,试图通过不提它打下来的问题,而不是暗示它只是用破折号代替下划线,以确保使用有效的属性名。 当然。 无论如何...

我想看看到底是什么转换样子,但是当我检查的HtmlHelper的静态方法与ILSpy这个名字,该方法似乎只需要调用本身。 这里发生了什么?

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

Answer 1:

从System.Web.MVC.HtmlHelper方法AnonymousObjectToHtmlAttributes呼唤具有相同的名称,但是从System.Web.WebPages.Html.HtmlHelper的方法。

该ILSpy不明确有关。 我需要悬停类从那里要来表明:

在这里输入图像描述

我问这是一个类似的问题anwered这里。