存储方法以一个接一个地执行

时间:2017-02-06 17:38:30

标签: c# ssh.net

我正在使用SSH.NET,我想创建"安全模式"在我的Connection课程中。基本上,它应该存储在一个连接中完成的所有方法,然后执行"执行"如果需要,他们一个接一个。像这样:

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

Flush()后,changeDirectory("directory")downloadFile("file")都应该执行""按此顺序。

所以我应该将这些方法存储在某种数组或队列中,对吧?但是怎么样?然后如何执行它们?

你可以给我任何提示吗?

1 个答案:

答案 0 :(得分:2)

在内部,您可以将命令列表存储为类中的一系列操作,并且只在您想要" flush"时才运行此列表。命令。

 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();
    }
}