2017-02-06 4 views
0

Ich arbeite mit SSH.NET und ich möchte "Secure mode" in meiner Connection Klasse erstellen. Grundsätzlich sollte es alle Methoden innerhalb einer Verbindung speichern und dann bei Bedarf nacheinander "ausführen". Etwas wie folgt aus:Speichermethoden um alle nacheinander auszuführen

Connection conn = new Connection("server", "username", "password"); 
conn.secureMode(true); //enabling secure mode 
conn.changeDirectory("directory"); 
conn.downloadFile("file"); 
conn.FlushMethods(); 
conn.disconnect(); 

Nach Flush() sowohl changeDirectory("directory") und downloadFile("file") sollte in dieser Reihenfolge "ausgeführt" werden.

Also sollte ich diese Methoden in einer Art Array oder Warteschlange speichern, oder? Aber wie? Und dann, wie man sie ausführt?

Können Sie mir irgendwelche Hinweise geben?

+0

Gibt es einen weiteren Grund, warum Sie eine Warteschlange verwenden möchten? Soweit sie in dieser Reihenfolge im Code erscheinen, werden sie in der gleichen Reihenfolge ausgeführt. – Mobigital

+0

Nein, es gibt keine. Ich habe gerade über eine Art von Sammlung nachgedacht. – SuperM4n

Antwort

2

Intern können Sie eine Liste der Befehle als eine Reihe von Aktionen innerhalb Ihrer Klasse speichern und diese Liste nur ausführen, wenn Sie die Befehle "leeren" möchten.

public class Connection 
{ 
    private List<Action> _commandList = new List<Action>(); 

    public void ChangeDirectory(string directoryName) 
    { 
     _commandList.Add(() => 
      { 
      //Actual code to change directory 
      }); 
    } 

    public void FlushMethods() 
    { 
     foreach(var command in _commandList) 
     { 
      command(); 
     } 
     _commandList.Clear(); 
    } 
} 
+0

OP: Beachten Sie mögliche Ausnahmen, Sie sollten sie entsprechend behandeln. –

+0

Korrekt, Sie müssen alle Fehler auf der Ebene der foreach-Schleife oder direkt in der "Aktion" behandeln. – Drawaes

+0

Danke euch allen sehr! – SuperM4n

Verwandte Themen