私のサーバー コントロールでは、次のようなマークアップを使用していくつかのプロパティを設定する必要があります。
<cc:MyControl runat="server" Property="Required" />
開発者がプロパティの追加を忘れると、例外がスローされます。これは、パブリック プロパティのゲッターで発生します。
public string Property
{
get { return GetRequiredPropertyFromViewState["Property"]; }
set { ViewState["Property"] = value; }
}
YSOD で、ソース エラーとスタック トレースが表示されます。表示されるソースは、私のカスタム コントロール クラスのものです。
Line 173: throw new ArgumentException(message);
コントロールのマークアップをソースエラーとして表示したいです。それは可能ですか?
私が知っているのは、WebForms ページ パーサーが、ソース エラーにマークアップを含む解析エラーを表示する場合があることだけです。しかし、これらは実際には例外ではありません。
編集:私は間違っていました。HttpParseExceptionを使用して、解析エラーをスローできます。ただし、ファイル、ソースコード、および行番号を指定しています。カスタム コントロール内からそれらを提供できるかどうかはわかりません。次の 3 つが必要ですが、最後の 2 つを取得する方法がわかりません。
- virtualPath: Page.Request.AppRelativeCurrentExecutionFilePath から取得できます
- ソース:
- ライン: