Problem with converting "eventhandlers" from c# to

csharp , Jordan
  • 10 years ago

    Hi all
    i have trouble with converting some pices of my old c# code to and hope someone here can help me.

    Code :

    Public NotInheritable Class ......

     Public Shared Event ResolvingServiceProvider As EventHandler(Of ResolvingServiceProviderEventArgs)
     Public Shared Function CreateProvider(ByVal providerType As Type) As IServiceProvider
      Dim provider As IServiceProvider = CreateFromType(providerType)
      ' working c# code
      'if (ResolvingServiceProvider != null)
      'ResolvingServiceProviderEventArgs e = new ResolvingServiceProviderEventArgs(provider, null);
      'ResolvingServiceProvider(null, e);
      'provider = e.ServiceProvider;

      ' New VB.Net code (2005)
      If ResolvingServiceProvider IsNot Nothing Then   ' Error (*)

       Dim e As New ResolvingServiceProviderEventArgs(provider, Nothing)
       RaiseEvent ResolvingServiceProvider(Nothing, e) ' Working
       provider = e.ServiceProvider
      End If


                Return provider
            End Function

    End Class 

     (*)  ' Error (Fehler 4 "Public Shared Event ResolvingServiceProvider(sender As Object, e As ResolvingServiceProviderEventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen.)

     I tryed to use the RaiseEvent also for the if statement but this dont work too

    PS : Excuses my bad English. My school time is past already 30 years ;-)


  • 10 years ago

    Hi there,

    I'm sorry, I can't  understand your question. Do you want to create an custom event in VB.NET? if it's true, see the following code:

        Public ResolvingServiceProviderHandler As EventHandler

    Public Custom Event ResolvingServiceProvider As EventHandler
    AddHandler(ByVal value As EventHandler)
    ResolvingServiceProviderHandler = value
    End AddHandler
    RemoveHandler(ByVal value As EventHandler)
    ResolvingServiceProviderHandler = Nothing
    End RemoveHandler
    RaiseEvent(ByVal sender As Object, ByVal e As System.EventArgs)
    ResolvingServiceProviderHandler.Invoke(sender, e)
    End RaiseEvent
    End Event

    Public Overridable Sub OnResolvingServiceProvider(ByVal e As EventArgs)
    If (ResolvingServiceProviderHandler IsNot Nothing) Then
    RaiseEvent ResolvingServiceProvider(Me, e)
    End If
    End Sub
  • 10 years ago
    You just use the RaiseEvent statement.  You don't test the event itself to see whether it has any handlers registered as that's not supports in VB.

Post a reply

Enter your message below

Sign in or Join us (it's free).


Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“God could create the world in six days because he didn't have to make it compatible with the previous version.”