我有一个通用的SQL实用程序类,我为很多任务编写,我使用SQLInfoMessageEventHandler显示来自长时间运行的存储过程的错误/信息消息。
我喜欢我的事件处理程序委托(在类外定义),以便能够获取额外的信息,例如字符串storedProcedureName。有干净的方法吗?
我有多个实用程序类,我试图保持独立,所以我不显示SQL类中的任何消息,因为我使用不同的类来显示/记录事件。
我在这里看到了一些使用Lambda表达式的非常聪明的方法,但是当我在课堂外定义委托时,我可以弄清楚如何使它工作。
//SQL class method
executeQuery (string storedProcedureName, SqlnfoMessageEventHandler eh = null)
{
//setup SQL connection
if (eh ! null)
{
connection.FireInfoMessageEventOnUserErrors = true;
connection.InfoMessage += eh;
}
//finish work
}
//Outside SQL class
static void showInfoMessage (object sender, SqlInfoMessageEventArgs e)
{
//Display e.Message
//Would also like to receive the storeProcedureName string
}