サーバーに次のコードがあります。
if (actualRowCount > maxRows)
{
throw new DomainException("OverMaxRowLimitException",
new OverMaxRowLimitException(string.Format(MaxRowsMessage,
actualRowCount, maxRows)));
}
これによりDomainException
、InnerException
プロパティ セットで新しい が作成されます。これがデバッガーで設定されていることを確認しました。
カスタム例外は次のように定義されます。
public class OverMaxRowLimitException : Exception
{
public OverMaxRowLimitException(string message)
{
this.Message = message;
}
public new string Message { get; set; }
}
これは、行が多すぎることをユーザーに知らせることができるように、適切なエラー メッセージをクライアントに返すことになっています。そのため、ロード完了ハンドラーには次のものが必要です。
if (result.HasError)
{
ShowError(result.Error.InnerException.Message);
}
残念ながら、InnerException
物件はnull
です。したがって、チェックする必要があるのは、クライアントに適切に転送されていない外側の例外メッセージのテキストだけです。
私が必要とすることが提案されています:
<customErrors mode="Off" />
Web構成ファイルで。私はこれを試しましたが、うまくいきません。
また、次のものが必要であることが示唆されています。
[KnownType(typeof(OverMaxRowLimitException))]
データ契約について。これを間違った場所に配置しない限り、これも機能しません。
また、カスタム例外に追加[Serializable]
して、それを一般的なものに置き換えてみましたException
。これらのどちらも機能しませんでした。
では、なぜInnerException
プロパティが null なのですか。私は何が欠けていますか?