Moin,
ich habe eine Klasse mit mehreren Properties, welche unter anderem Konfigurationsdaten für WinSCP enthalten.
Dieser Klasse möchte ich nun erweiterte Properties anfügen, unter anderem eine Property als WinSCP.SessionOptions. Wodurch beim Abruf über das Objekt direkt die SessionOptions abgerufen werden und nicht erst beim Aufbau der Ftp Verbindung die Zugangsdaten zusammengestellt werden müssen.
Hier mal ein Beispiel;
WinSCP benötigt, je nach Protokoll, unterschiedliche Einstellungen.
Wenn Protokoll = Sftp dann muss FtpSecure = None sein, sonst darf es Explicit, Implicit oder None sein. Andernfalls wird eine Fehler der DLL gemeldet.
Meine Vorstellung dafür als Pseudo-Code:
Also praktisch eine Funktion in einer Zeile, die mit If ... Then ... arbeitet.
Gibt es so etwas in VB.Net?
Ich könnte dafür natürlich auch eine Private Property / Private Function innerhalb der Klasse erstellen, welche dann .FtpSecure den richtigen Wert zuweist, allerdings interessiert es mich, ob es auch anders geht.
Ergänzung:
So würde ich es über eine zusätzliche Private Property lösen
Grüße
ich habe eine Klasse mit mehreren Properties, welche unter anderem Konfigurationsdaten für WinSCP enthalten.
Dieser Klasse möchte ich nun erweiterte Properties anfügen, unter anderem eine Property als WinSCP.SessionOptions. Wodurch beim Abruf über das Objekt direkt die SessionOptions abgerufen werden und nicht erst beim Aufbau der Ftp Verbindung die Zugangsdaten zusammengestellt werden müssen.
Hier mal ein Beispiel;
VB.NET-Quellcode
- Public ReadOnly Property SessionOptions As WinSCP.SessionOptions
- Get
- Return New WinSCP.SessionOptions With {
- .Protocol = WinSCP.Protocol.Ftp,
- .FtpSecure = XFtp.FtpSecure.GetByID(Me.FtpFtpSecure).Value,
- .FtpMode = XFtp.FtpMode.GetByID(Me.FtpFtpMode).Value,
- .HostName = Me.FtpHostName,
- .Password = Me.FtpPassword,
- .PortNumber = Me.FtpPortNumber,
- .UserName = Me.FtpUserName,
- .GiveUpSecurityAndAcceptAnySshHostKey = .Protocol = WinSCP.Protocol.Sftp,
- .GiveUpSecurityAndAcceptAnyTlsHostCertificate = .Protocol = WinSCP.Protocol.Ftp
- }
- End Get
- End Property
WinSCP benötigt, je nach Protokoll, unterschiedliche Einstellungen.
Wenn Protokoll = Sftp dann muss FtpSecure = None sein, sonst darf es Explicit, Implicit oder None sein. Andernfalls wird eine Fehler der DLL gemeldet.
Meine Vorstellung dafür als Pseudo-Code:
Also praktisch eine Funktion in einer Zeile, die mit If ... Then ... arbeitet.
Gibt es so etwas in VB.Net?
Ich könnte dafür natürlich auch eine Private Property / Private Function innerhalb der Klasse erstellen, welche dann .FtpSecure den richtigen Wert zuweist, allerdings interessiert es mich, ob es auch anders geht.
Ergänzung:
So würde ich es über eine zusätzliche Private Property lösen
VB.NET-Quellcode
- Private ReadOnly Property _FtpSecure As WinSCP.FtpSecure
- Get
- With Me
- Select Case XFtp.Protocol.GetByID(.FtpProtocol).Value
- Case WinSCP.Protocol.Ftp
- Return XFtp.FtpSecure.GetByID(.FtpFtpSecure).Value
- Case WinSCP.Protocol.Sftp
- Return WinSCP.FtpSecure.None
- Case Else
- Return WinSCP.FtpSecure.None
- End Select
- End With
- End Get
- End Property
Grüße