ASP.NETにおけるInherits,CodeFile,CodeBehindの違いの詳細
1570 ワード
Inherits、CodeFile、CodeBehind
ASP.NETでは、HTMLコンテンツから完全に個別のファイルにページコードをより明確に分離できるように、コード非表示方法を用いてWebフォームを設計しています.通常、@pageコマンドは次のとおりです.
このうち3つの属性(Inherits,CodeFile,CodeBehind)は非常に混同しやすく,以下でそれぞれ説明する.
Inherits
msdn解釈:ページ継承用のコード非表示クラスを定義します.Pageクラスから派生したクラスであってもよい.このプロパティは、コード非表示クラスのソースファイルへのパスを含むCodeFileプロパティとともに使用されます.Inheritsプロパティは、C#をページ言語として使用する場合は大文字と小文字を区別し、Visual Basicをページ言語として使用する場合は大文字と小文字を区別しません.
Inheritsプロパティにネーミングスペースが含まれていない場合、ASP.NETではClassNameプロパティにネーミングスペースが含まれているかどうかを確認します.含む場合、ASP.NETはClassNameプロパティのネーミングスペースを使用して、Inheritsプロパティで参照されているクラスをロードしようとします.(これは、InheritsプロパティとClassNameプロパティが同じネーミングスペースを使用すると仮定します.)
Inheritsプロパティは、現在のWebフォームで継承されているコード非表示クラス(System.Web.UI.Pageの派生クラス)を定義します.このinheritsプロパティは、コード非表示で作成されたWebフォームにのみ使用されます.つまり、コードがすべてWebフォームのラベルにある場合は、このプロパティを使用する必要はありません.
CodeFile
msdn解釈:ページ参照へのコード非表示ファイルのパスを指定します.このプロパティは、ソースファイルをWebページに関連付けるためにInheritsプロパティとともに使用されます.このプロパティは、コンパイルされたページにのみ有効です.
このプロパティは、Webサイトのプロジェクトに使用されます.
Codebehind
msdn解釈:ページに関連付けられたクラスを含むコンパイル済みファイルの名前を指定します.このプロパティは実行時に使用できません.この機能は、Webアプリケーションプロジェクトに使用されます.
Codebehind属性は本物のASPではありません.NET属性、ASP.NETドキュメントには見つかりません.実はVisual StudioですNETプロパティ、Visual Studio.NETはこの属性を借りて、管理プロジェクトのWebフォームとそれに対応するコード隠しファイルをよく追跡します.例えば、設計環境でWebフォームにサーバーコントロールを入れると、Visual Studioになります.NETは、Webフォームに対応するコード非表示ファイルを自動的に見つけ、関連するコードを自動的に挿入します.
ASP.NETでは、HTMLコンテンツから完全に個別のファイルにページコードをより明確に分離できるように、コード非表示方法を用いてWebフォームを設計しています.通常、@pageコマンドは次のとおりです.
< %@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false"
Inherits="WebApplication1.WebForm1" %>
このうち3つの属性(Inherits,CodeFile,CodeBehind)は非常に混同しやすく,以下でそれぞれ説明する.
Inherits
msdn解釈:ページ継承用のコード非表示クラスを定義します.Pageクラスから派生したクラスであってもよい.このプロパティは、コード非表示クラスのソースファイルへのパスを含むCodeFileプロパティとともに使用されます.Inheritsプロパティは、C#をページ言語として使用する場合は大文字と小文字を区別し、Visual Basicをページ言語として使用する場合は大文字と小文字を区別しません.
Inheritsプロパティにネーミングスペースが含まれていない場合、ASP.NETではClassNameプロパティにネーミングスペースが含まれているかどうかを確認します.含む場合、ASP.NETはClassNameプロパティのネーミングスペースを使用して、Inheritsプロパティで参照されているクラスをロードしようとします.(これは、InheritsプロパティとClassNameプロパティが同じネーミングスペースを使用すると仮定します.)
Inheritsプロパティは、現在のWebフォームで継承されているコード非表示クラス(System.Web.UI.Pageの派生クラス)を定義します.このinheritsプロパティは、コード非表示で作成されたWebフォームにのみ使用されます.つまり、コードがすべてWebフォームのラベルにある場合は、このプロパティを使用する必要はありません.
CodeFile
msdn解釈:ページ参照へのコード非表示ファイルのパスを指定します.このプロパティは、ソースファイルをWebページに関連付けるためにInheritsプロパティとともに使用されます.このプロパティは、コンパイルされたページにのみ有効です.
このプロパティは、Webサイトのプロジェクトに使用されます.
Codebehind
msdn解釈:ページに関連付けられたクラスを含むコンパイル済みファイルの名前を指定します.このプロパティは実行時に使用できません.この機能は、Webアプリケーションプロジェクトに使用されます.
Codebehind属性は本物のASPではありません.NET属性、ASP.NETドキュメントには見つかりません.実はVisual StudioですNETプロパティ、Visual Studio.NETはこの属性を借りて、管理プロジェクトのWebフォームとそれに対応するコード隠しファイルをよく追跡します.例えば、設計環境でWebフォームにサーバーコントロールを入れると、Visual Studioになります.NETは、Webフォームに対応するコード非表示ファイルを自動的に見つけ、関連するコードを自動的に挿入します.