扩展 SqlException 并向其添加 属性

Extend SqlException and add a property to it

我正在尝试扩展 System.Data.SqlClient.SqlException 并向其添加 属性。这样,在每次 SqlCommand 执行时,如果抛出异常,我可以捕获它,添加已执行的 SQL,然后重新抛出它。

我以前做过扩展,但只是用方法。使用属性我无法管理它工作。

public static class SqlExceptionExtention{
    public static string query { get; set; }
}

我已经尝试了添加和删除静态标志的所有组合,但没有任何效果。当然属性不能是静态的,必须具体到每个对象。

没有扩展属性,只有扩展方法。

如果你想添加数据,那么你可以使用 Data 属性 来填充字典:

try
{
  // Do something
}
catch(SqlException e)
{
  e.Data.Add("Foo", "Bar");
  throw;
}