2017-02-06 1 views
0

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")이 위해 "실행"해야합니다.

그래서 배열이나 대기열에 이러한 메서드를 저장해야합니다. 맞습니까? 그러나 어떻게? 그런 다음 어떻게 실행합니까?

어떤 힌트를 주시겠습니까?

+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