ASP.NET 如何将 ASPX 文件解析为可执行代码?
ASP.NET 如何将 .aspx、.ascx 或 .master 文件解析为可执行代码?
我有一个大脑和一份 .NET Reflector 的副本,所以如果有人能告诉我去哪里寻找,那就足够了。
How does ASP.NET parse an .aspx, .ascx or .master file into executable code?
I have a brain and a copy of .NET Reflector, so if someone could tell me where to look, that is sufficient.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您正在寻找
TemplateParser
和TemplateBuilder
类及其派生类。您可以下载 .Net 框架的参考源,其中包含注释,比反射器。
You're looking for the
TemplateParser
andTemplateBuilder
classes and their derivatives.You can download the reference source for the .Net framework, which includes comments and will be more readable than Reflector.
它使用asp.net语法解析器(system.web.dll)编译命名空间和文件语言的codedom来生成源文件。然后使用 codedom 提供程序将它们编译为 dll,将它们放置在 asp.net 临时文件目录中并加载它。
It uses the asp.net syntax parser (system.web.dll) compilation namespace, and codedom for the language of the file to generate source files. Then compiles them to a dll with the codedom provider places them in the asp.net temporary files dir and loads it.
了解有关生命周期的更多信息的一种好方法是使用 Visual Studio 2010 中的调试器并在某处设置断点。然后显示调用堆栈(调试->Windows->调用堆栈)。然后右键单击调用堆栈跟踪中的某处并选择“显示外部代码”。在那里您可以看到托管世界中正在发生的事情。
One good way to learn more on the life cycle is to use the debugger in Visual Studio 2010 and set a break point somewhere. Then show the Call stack (Debug->Windows->Call Stack). Then right click somewhere in the call stack trace and choose "Show External Code". There you can see what's going on in the managed world.