VB.NET中事件的GetInvocationList

我试图通过遵循WCF应用程序(来自Sacha Barber)的示例来学习一些WCF原则.

现在我想将以下函数转换为VB.NET

private void broadcastMessage(ChatEventArgs e)
{

    ChatEventHandler temp = ChatEvent;

    if (temp != null)
    {
        foreach (ChatEventHandler handler in temp.GetInvocationList())
        {
            handler.BeginInvoke(this,e,new AsyncCallback(EndAsync),null);
        }
    }
}

但是我遇到了一些问题,因为编译器不接受以下代码

Private Sub broadcastMessage(ByVal e As ChatEventArgs)

    Dim handlers As EventHandler(Of ChatEventArgs) = ChatEvent

    If handlers IsNot nothing Then

        For Each handler As EventHandler(Of ChatEventArgs) In handlers.GetInvocationList()

            handler.BeginInvoke(Me,New AsyncCallback(AddressOf EndAsync),nothing)

        Next

    End If

End Sub

它说

Public Shared Event ChatEvent(sender
As Object,e As ChatEventArgs)’ is an
event,and cannot be called directly

接下来,是否有可能在VB.NET中获得以某种其他方式链接到某个事件的处理程序?

使用ChatEventEvent(或EventNameEvent)

它不会出现在intellisense中,但它的成员会.

VB.NET在幕后创建一个变量,以隐藏编码器的复杂性……

这仅在声明事件的类(或可能是其后代)中可用

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...