- - PR -
System.Web.UI.MasterPageクラスのPageプロパティについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-01-14 00:45
[前提]
System.Web.UI.Controlクラスに定義されている「Page」プロパティは System.Web.UI.Pageクラスだと思います。 [試したこと] マスターページを使用してaspxを作成しています。 マスターページ→OrgMasterPage : System.Web.UI.MasterPage コンテンツページ→OrgPage : System.Web.UI.Page ※OrgMasterPageクラスにOrgPageを突っ込んでいます <結果1> OrgMasterPageクラスにて this.Equals(this.page) → true <結果2> OrgPageクラスにて this.Equals(this.page) → true となります。 [不思議におもったこと] [前提]にもあるとおり、「Page」プロパティは、System.Web.UI.Pageクラス。 OrgPageクラスは、System.Web.UI.Pageクラスを継承している為、<結果2>となるのはわかります。 しかし、OrgMasterPageは、System.Web.UI.MasterPageクラスを継承しています。 なのに、<結果1>となります。 System.Web.UI.MasterPageクラスは、System.Web.UI.Pageクラスを継承していないのにどうして 「Page」プロパティ(System.Web.UI.Pageクラスインスタンス)に設定できてしまうのでしょうか? ※*.aspxと*.csから自動生成されるコードがコンパイルされてDLLができることは 知っているのですが、その自動生成されるコードに記述されているクラスも、 System.Web.UI.Pageクラスとの継承関係はありませんでした…。 |
|
投稿日時: 2009-01-14 00:52
どのように検証しましたか?
マスターページの Page_Load メソッドで this.Equals(this.Page) を実行してみましたが false でした。 _________________ C#と諸々 |
|
投稿日時: 2009-01-14 01:56
大変失礼致しました。完全なる間違いです。
ご指摘の通り、falseとなっておりました。 OrgMasterPage.Pageプロパティには、OrgPageクラスインスタンス※1が設定されていました。 大変申し訳ありませんでした。 ※1…正確には、自動生成されるコードに定義されているOrgPageクラスを継承した クラスインスタンスです。 |
1