ASP.NET CodeFile VS CodeBehind

在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.

如下所示 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

 参照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

 

posted @ 2017-09-27 15:14  tomclock  阅读(1278)  评论(0编辑  收藏  举报