2017-02-06 5 views
0

私はSSH.NETで作業しています。私はConnectionクラスに "安全モード"を作成したいと思います。基本的には、1つの接続内で実行されたすべてのメソッドを格納し、必要に応じて順番に「実行」する必要があります。このような何か:Flush()changeDirectory("directory")downloadFile("file")両方の後すべてを1つずつ実行するメソッドを保存する

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

は、このために、「実行」する必要があります。

だから、私はこれらのメソッドを何らかの並べ替えの配列またはキューに格納する必要があります。しかしどうですか?そして、それらを実行する方法?

私に何かヒントはありますか?

+0

キューを使用する理由がいくつかありますか?これまでのところ、コードがこの順序で表示される場合、それらは同じ順序で実行されます。 – Mobigital

+0

いいえ、ありません。私は何らかのコレクションについて考えていただけです。 – SuperM4n

答えて

2

内部的には、コマンドのリストをクラス内に一連のアクションとして保存し、コマンドを "フラッシュ"するときにのみこのリストを実行できます。

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:潜在的な例外を認識し、適切に処理する必要があります。 –

+0

正しい場合は、foreachループレベルでエラーを処理するか、「アクション」で直接処理する必要があります。 – Drawaes

+0

ありがとうございました! – SuperM4n

関連する問題