在ASP.NET开发环境中, 新建Asp.net项目。新生成的Aspx文件中,会自动生成如下代码。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CodeBehind.aspx.cs" Inherits="WebApplication.WebForm" %>
在一个现行的项目中,同样类型的Aspx文件,其形式如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CodeBehind.aspx.cs" Inherits="WebApplication.WebForm" %>这里便提出,CodeFile和CodeBehind的区别?
结论是:
1,CodeBehind属性,必须确保代码经过编译,代码运行时,对其CS文件进行编译不影响画面显示。
2,CodeFile属性,经过编译的DLL可以删除不要,CS文件一旦修改,立刻反映到画面。
(立刻反映,也需要画面重新加载,普通情况下F5刷新,或者后退再前进。)
3,CodeBehind属性的情况下,会重新加载一个新的designer.cs,当增加一个控件时,其designer.cs会自动生成。
而CodeFile情况下,designer.cs不会自动生成。
4,对Step3 进一步分析,不难发现1,2的区别。
进一步说明,在Asp.net 2.0之前,不支持 CodeFile。 而最新的Asp.net则默认为CodeFile.
如下所示
参照Link
http://qiita.com/Booby/items/c092295379fe1dda6211#%E3%83%93%E3%83%AB%E3%83%89%E3%81%97%E3%81%A6%E3%81%A7%E3%81%8D%E3%81%9Fdll%E3%82%92ilspy%E3%81%A7%E9%80%86%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B
https://codezine.jp/article/detail/173