以下のコードに示すように、キャストに依存することなくエラーコードを抽出するにはどうすればよいですか?スクリーンショットでは、NumberはオブジェクトInnerExceptionのプロパティですが、アクセスできません。InnerExceptionからSqlExceptionエラー番号を抽出する
try
{
// db call
}
catch (Exception exc)
{
// Works
var q = exc.InnerException as SqlException;
var ErrorCode = q.Number;
// Not possible
var err = exc.InnerException.Number;
}
なぜこれはできないのですか?また、InnerException Numberプロパティのドキュメントはどこにありますか?また
キャストなしではできません。なぜあなたはそれをキャストできませんか? – maembe
InnerException NumberプロパティはSqlExceptionのプロパティなので、1行で番号を取得する場合は、 '((SqlException)exc.InnerException).Number' –
@maembeと記述されているようにキャストすることができますコードコメント – usefulBee