Code von C# in VB umwandeln

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ketzei.

    Code von C# in VB umwandeln

    Hallo Leute,

    hab folgendes Problem:

    Habe aus einer SDK ein Beispielprog das in C# geschrieben wurde, ich will jetzt aber dieses Prog nach VB umwandeln.
    Hab das jetzt mal einfach mit dem Codeconverter "SnippetConverter" gemacht, so weit so gut, leider bringt mir VS jetzt einen Fehler
    mit den Events! Kann mir jemand helfen? Kenn mich mit Events noch nicht aus!

    VB.NET-Quellcode

    1. Private _monReceiver As ReliableReceiver = Nothing
    2. _monReceiver.BoardProcessedEventReceived += New BoardProcessedEvent(_monReceiver_BoardProcessedEventReceived)
    3. _monReceiver.BoardProcessedEventReceived -= New BoardProcessedEvent(_monReceiver_BoardProcessedEventReceived)


    Fehler 1 "Public Event BoardProcessedEventReceived(sender As Object, args As Siemens.Siplace.Oib.Monitoring.Proxy.Business.EventArgs.BoardProcessedEventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen. C:\Users\xxx\documents\visual studio 2010\Projects\OIBMonitoring\OIBMonitoring\Form1.vb 54 9 OIBMonitoring

    Fehler 2 Der Delegat "Siemens.Siplace.Oib.Monitoring.Proxy.Architecture.Objects.BoardProcessedEvent" erfordert als einziges Argument für seinen Konstruktor einen AddressOf-Ausdruck oder einen Lambda-Ausdruck. C:\Users\xxx\documents\visual studio 2010\Projects\OIBMonitoring\OIBMonitoring\Form1.vb 54 77 OIBMonitoring

    ?( ?( ?(

    ketzei schrieb:

    VB.NET-Quellcode

    1. Private _monReceiver As ReliableReceiver = Nothing

    VB.NET-Quellcode

    1. Private WithEvents _monReceiver As ReliableReceiver = Nothing
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke. hab ich jetzt so eingefügt, aber was muss ich dann noch machen?

    VB.NET-Quellcode

    1. Private WithEvents _monReceiver As ReliableReceiver = Nothing
    2. Public Sub InitializeReceiver()
    3. ' subscribe
    4. Dim monSubscriber As New Subscriber()
    5. Dim [sub] As New Subscribe()
    6. [sub].Delivery = New Delivery()
    7. [sub].Delivery.DeliveryModeType = DeliveryModeType.PushWithAck
    8. [sub].Delivery.NotifyTo = New System.ServiceModel.EndpointAddress(_strEndpoint)
    9. Dim subresult As SubscribeResult = monSubscriber.Subscribe(monSubscriber.DefaultTopic, [sub])
    10. ' persist it for unsubscribe at the end
    11. _SubscriptionId = subresult.SubscriptionManager.Identifier
    12. _monReceiver = New ReliableReceiver(_strEndpoint)
    13. ' event
    14. _monReceiver.BoardProcessedEventReceived += New BoardProcessedEvent(_monReceiver_BoardProcessedEventReceived) 'hier kommt ein Fehler
    15. _monReceiver.MarshalEventsToSessionCreatorThread = True
    16. ' events kommen jetzt nebenläufig rein, GUI Anwendungen stehen auf true
    17. End Sub
    18. Public Sub UninitializeReceiver()
    19. ' unregister event
    20. _monReceiver.BoardProcessedEventReceived -= New BoardProcessedEvent(_monReceiver_BoardProcessedEventReceived) 'hier kommt ein Fehler
    21. ' dispose the receiver
    22. _monReceiver.Dispose()
    23. ' and unsubscribe in OIB
    24. Dim monSubscriber As New Subscriber()
    25. monSubscriber.Unsubscribe(_SubscriptionId, monSubscriber.DefaultTopic)
    26. End Sub
    27. Private Sub _monReceiver_BoardProcessedEventReceived(sender As Object, args As Siemens.Siplace.Oib.Monitoring.Proxy.Business.EventArgs.BoardProcessedEventArgs) Handles _monReceiver.BoardProcessedEventReceived

    ketzei schrieb:

    VB.NET-Quellcode

    1. _monReceiver.BoardProcessedEventReceived += New BoardProcessedEvent(_monReceiver_BoardProcessedEventReceived) 'hier kommt ein Fehler
    2. _monReceiver.BoardProcessedEventReceived -= New BoardProcessedEvent(_monReceiver_BoardProcessedEventReceived) 'hier kommt ein Fehler
    Das musste jetzt mit AddHandler und RemoveHandler machen

    VB.NET-Quellcode

    1. AddHandler _monReceiver.BoardProcessedEventReceived, AddressOf _monReceiver_BoardProcessedEventReceived
    2. RemoveHandler _monReceiver.BoardProcessedEventReceived, AddressOf _monReceiver_BoardProcessedEventReceived
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,
    Danke für die Hilfe, jetzt hab ich das nächste Problem:

    Wenn ich Debugging starten will, bricht dies sofort ab und folgende Warnungen kommen:

    Warnung 1 Die Assembly "Siemens.SIPLACE.OIB.Monitoring.Proxy", auf die verwiesen wird, konnte nicht aufgelöst werden, da sie eine Abhängigkeit von "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" aufweist (nicht im aktuellen Zielframework ".NETFramework,Version=v4.0,Profile=Client" enthalten). Entfernen Sie Verweise auf im Zielframework nicht enthaltene Assemblys, oder weisen Sie das Projekt neu zu. OIBMonitoring


    Was muss ich da noch einstellen? Projekt ist auf .NET 4 eingestellt :?:
    Schmeiß die Assembly Siemens.SIPLACE.OIB.Monitoring.Proxy raus und füge sie wieder ein.
    Ansonsten: ür welches FW ist denn diese Assembly tatsächlich kompiliert? Gibt es da eine alte und eine neue?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!