文字列を解析してコントロールにするクラス ライブラリ関数を作成しました。現在のページを取得し、page.ParseControl を使用して文字列をコントロールとして解析します。
System.Web.UI.Page page = (System.Web.UI.Page) HttpContext.Current.CurrentHandler;
System.Web.UI.Control ctrl = page.ParseControl(str);
この関数の呼び出し元が Ajax Web サービスである場合を除いて、ほとんどのシナリオで正常に動作します。この場合、次のエラーが発生します: タイプ 'HandlerWrapperWithSession' のオブジェクトをタイプ 'System.Web.UI.Page' にキャストできません。CurrentHandler が Page 型ではないため、明らかにこのエラーが発生していますが、ParseControl を呼び出すには Page オブジェクトが必要です。
この問題を解決する方法はありますか?