するSystem.Reflectionを使用してASP.NET 2.0 aspxページをロードしますか?
-
22-08-2019 - |
質問
私がするSystem.Reflectionを使用して単独のaspxページをスタンド別にスタンドアローンaspxページをロードすることはできますか?
私は、ASP.NET 2.0のWebサイトプロジェクトモデルを使用しています。
解決
BuildManager.CreateInstanceFromVirtualPath 。使用例:
Page p = BuildManager.CreateInstanceFromVirtualPath("~/Default.aspx", typeof(Page))
あなたのコメントに基づいて、私はこれがあなたが本当に欲しいものであることはよく分からない、が、これは、この特定の質問に答えるます。
他のヒント
同様に可能とすることができる、リフレクションを使用してそれをやって知りませんが、HttpContext.Server.Execute()を使用して文字列ライターへのaspxまたはASPページの出力をキャプチャすることができます。
私はいくつかの複雑な電子メールテンプレートをレンダリングするためにこれを使用しているが、それはあなたが後にしている、非常に何かあるかどうかを知りません。
ページの後ろにあなたのコードのためにUI.Pageから継承したクラスを持っている場合は、
は、あなたがこの方法を使用することができます。 あなたの現在のHTTPコンテキストへの設定CONTEXT の
Dim hndlr As IHttpHandler = PageParser.GetCompiledPageInstance("~/mypage.aspx", context.Server.MapPath("~/mypage.aspx"), CONTEXT)
Dim ipage As DerivedPage = DirectCast(hndlr, DerivedPage)
ipage.YourProperty= "Hello"
ipage.DoIt()
だから、あなたはあなたが警告されます方法の符号を変更します場合は、強い型指定された値を持つことができます。
私は、次のソリューションを実装し、それは私が正確に何をしたいです。
using System.Reflection;
using System.Web.Compilation;
Page p = BuildManager.CreateInstanceFromVirtualPath("~/mypage.aspx", typeof(Page)) as Page;
MethodInfo MyMethod = p.GetType().GetMethod("MyMethod");
MyMethod.Invoke(p, null);
所属していません StackOverflow