<PackageReference Include="SSH.NET" Version="2020.0.1" />

SftpRequest

abstract class SftpRequest : SftpMessage
using Renci.SshNet.Sftp.Responses; using System; namespace Renci.SshNet.Sftp.Requests { internal abstract class SftpRequest : SftpMessage { private readonly Action<SftpStatusResponse> _statusAction; public uint RequestId { get; set; } public uint ProtocolVersion { get; set; } protected override int BufferCapacity => base.BufferCapacity + 4; protected SftpRequest(uint protocolVersion, uint requestId, Action<SftpStatusResponse> statusAction) { RequestId = requestId; ProtocolVersion = protocolVersion; _statusAction = statusAction; } public virtual void Complete(SftpResponse response) { SftpStatusResponse sftpStatusResponse = response as SftpStatusResponse; if (sftpStatusResponse != null) { _statusAction(sftpStatusResponse); return; } throw new InvalidOperationException($"""{response.GetType().get_Name()}"""); } protected override void LoadData() { throw new InvalidOperationException("Request cannot be saved."); } protected override void SaveData() { base.SaveData(); Write(RequestId); } } }