特定のページのコントロールコレクションを動的にロードするメソッドを作成しようとしています。これにより、ページを反復処理して、ページに存在する特定のタイプのコントロールのリストを作成できます。特定のページクラスから継承するページについて、特定の属性を持つ編集可能なフィールドのリストをコンパイルしたいという考え方です。これはすべて、これらのページの外部(ユーザーがこれらの他のページを管理できるようにする別のページ)で発生します。
次の両方のシナリオを試しました。
BasePage page = (BasePage)System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(string.Format("~/Pages/{0}/Manage.aspx", type.ToString()), typeof(BasePage));
IHttpHandler handler = PageParser.GetCompiledPageInstance(string.Format("~/Pages/{0}/Manage.aspx", type.ToString()), Context.Server.MapPath(string.Format("~/Pages/{0}/Manage.aspx", type.ToString())), HttpContext.Current);
BasePage page = handler as BasePage;
どちらの状況でも、ページ変数は開始されますが、コントロールコレクションは空白です。おそらく、これらのメソッドは両方とも、マークアップではなくコードビハインドのみをロードしているためです。ページのコントロールコレクションを動的にロードするにはどうすればよいですか?