DotNet Methode verlangt Callback Function als Parameter

8. September 2021 14:52

Hallo Forum,

(ggf. ist es nicht das richtige Unterforum, dann bitte entschuldigen)

mit DotNet Variablen hatte ich bisher nur im Kleinen zu tun. Für eine größere Anwendung muss ich mich nun mehr reinfuchsen.

Wir verwenden eine lizensierte Software auf einem lokalen Server für sichere Datenübertragung. Es wird eine DotNet API angeboten, um den Dienst zu nutzen.
Diese versuche ich nun in unser NAV einzubinden. Die DLL ist drin und ich kann die DotNet Objekte verwenden.

Ich hangele mich entlang eines Beispiels für C# und übertrage es auf C/AL. Das funktioniert auch soweit. Ich kann die Verbindung zum Server aufbauen und den Transfer vorbereiten.
Nun hänge ich praktisch beim Zieleinlauf: Beim Start des Dateitransfers.

Die Methode "StartTransfer" möchte folgende Parameter haben:
1. Transfer DotNet
2. ProgressChangedCallback DotNet
3. TransferCompleteCallback DotNet

Parameter 1 ist vorhanden. Jedoch sind Parameter 2 und 3 im C# Beispiel Funktionsaufrufe, z.B. um einen Fortschrittsbalken zu aktualisieren.
Die gibt es anscheinend (und für mich auch nachvollziehbar) nicht als DotNet Subtype, so dass ich sie nicht übergeben kann.
Weglassen kann sich sie nicht (zu wenige Parameter) und diverse Platzhalter führen zu "Ein Typ mindestens eines Arguments entspricht nicht dem Parameteryp der Methode".

Da ich nichts zu dem Thema im Internet gefunden habe, verwende ich entweder die völlig falschen Schlagwörter oder es ist so trivial, dass das für niemanden eine Hürde war.

Die Callback Functions brauche ich nicht. Es soll einfach die Methode gestartet werden, als wenn die Callbackfunctions ohne Inhalt sind. Mich würde aber schon interessieren, ob und wie das theoretisch ginge.

Ist für mich hier Endstation oder gibt es eine Lösung?

Danke und Grüße
Kai

Re: DotNet Methode verlangt Callback Function als Parameter

8. September 2021 20:29

Hallo,

ich benutze für jedwede Dateitransfers unter NAV, die WinSCP- Dotnet- Libraray.

Die benötigt nicht unbedingt Callbacks.

Evtl. hilft es auch einfach "null" als Parameter zu übergeben, damit er keinen Callback aufruft.

Gruß Fiddi