ASPXページでユーザーコントロールを参照しているところですが、これら2つのページディレクティブの違いは何でしょうか。
@Register
はより一般的に使用されるディレクティブです。これは、aspxまたはascxページでユーザーコントロールを宣言的に使用する場合に使用します。 @Register
コントロールを特定のプレフィックスに関連付けて、マークアップで使用できるようにします。
@Reference
は、aspxまたはascxページがコンパイルされるときに他のコントロールをコンパイルするようにASP.NETに指示するだけです。これにより、実行時に使用可能になり、プログラムでコントロール階層に追加できるようになります。実行時にユーザーコントロールを動的に変更することは一般的ではないため、これはあまり一般的ではありません。
これはそれについての良いブログ投稿です。
http://weblogs.asp.net/johnkatsiotis/archive/2008/08/13/the-reference-directive.aspx
@Register
は、主に登録に使用されますタグプレフィックスから宣言的にページ内のコントロールを使用します。
<%@ Register tagprefix="my" namespace="MyNamespace" %>
<my:CustomControl runat=server />
@Reference
は主に、ページまたはユーザーコントロールを(ファイル名または仮想パスで)参照するために使用されますプログラム的に参照メンバー =ページまたはコントロールの。
<%@ Reference Control="MyControl.ascx" %>
<% MyControl ctrl = (MyControl) Page.LoadControl("MyControl.ascx");
ctrl.CustomProperty = "..."; //REFERENCE directive is needed to access property
%>