一个新的我明白,我需要每收到一个回调时不断更新OnChangeEventHandler之前没有OnChangeEventHandler。如何查看有添加在SQL服务器
我想确保有添加一个新的人之前没有现成的处理程序。
我该怎么做?有计数吗? (见这里评论)?
public void InitialiseDependency(Action onDependencyMethod)
{
this.onDependencyMethod = onDependencyMethod;
SqlDependency.Start(connectionString, null);
using (SqlCommand command = new SqlCommand(
"SELECT [Symbol] FROM [dbo].[tblOrders] WHERE [Status] = 'NEW'",
conn))
{
SqlDependency dependency = new SqlDependency(command);
//HERE if (dependency.OnChangeEventHandlers.count()) > 0 { return; }
dependency.OnChange += new OnChangeEventHandler(OnDependencyChange);
using (SqlDataReader reader = command.ExecuteReader())
{
// Process the DataReader.
}
}
}
是否'dependency.OnChange'有像'dependency.OnChange.GetInvocationList()'的方法? –
@MikeNakis它,但你不能用'OnChange'比的'+ ='或'左侧之外的任何地方 - =',所以你不能直接将调用列表或将其转换为' MultiCastDelegate'。 –
@MikeNakis不,它是一个'event',它改变了一些规则。 –