我是ASP.Net中的C#新手。我正在使用VS 2015和NetCore项目。我在PHP(PHPStorm IDE)中用于控制 - 单击一个方法名称以查看它的定义并查看它的作用。
在VS 2015中,例如对于Controller中的View(),我必须右键单击 - >转到定义。但定义就是这样:
...
//
// Summary:
// Creates a Microsoft.AspNetCore.Mvc.ViewResult object that renders a view to the
// response.
//
// Returns:
// The created Microsoft.AspNetCore.Mvc.ViewResult object for the response.
[NonAction]
public virtual ViewResult View();
...
所以我无法看到它实际上做了什么。这是因为它是封闭源吗?
修改
我从Jetbrains免费安装了dotPeek,并且对于我正在寻找的东西非常棒。它甚至还有Control-Click转到定义:
答案 0 :(得分:2)
这不是因为它是封闭源代码,而是其中的代码已经编译过,您只是通过DLL引用它(并且您没有显式加载符号以通过实际源进行调试)。
如果您想真正看到方法调用链及其来源的样子,可以查看ASP.NET Core MVC repository on GitHub或尝试debug against the source itself as mentioned here。
View()
方法
如果你想知道幕后实际发生了什么并且不需要显式调试源本身,你可以在之前链接的GitHub仓库中跟随以查看以下调用。
View()
View(name, model)
ViewResult
对象。
ViewResult()
ExecuteAsync()
ExecuteAsync()
答案 1 :(得分:1)
是的,除非你使用像reflector.net这样的工具来反映它,否则你将无法看到它的实现。
通常,您可以看到的唯一代码就是解决方案中的代码。