프로세스의 명령 줄을 구문 분석해야하는 .NET 클래스를 작성하고 있습니다. Main() 메서드와 그 클래스 사이의 종속성을 갖고 싶지 않습니다. 클래스가 어떻게 명령 행에 액세스 할 수 있습니까?C#에서 Main 외부 명령 줄 매개 변수에 액세스하는 방법
답변
Environment.GetCommandLineArgs()
으로 전화하십시오.
System.Diagnostics.Process.GetCurrentProcess().StartInfo.Arguments
사실,이 작동하지 않는 것 같습니다. 항상 비어있는 것 같습니다. http://stackoverflow.com/questions/344056/why-is-startinfo-processstartinfo-always-empty – Carsten
응용 프로그램의 옵션을 포함하는 클래스를 만듭니다. main 메소드에서 그 클래스의 인스턴스를 생성하고, 커맨드 라인 인자로 그것을 초기화하고, 그것을 필요로하는 클래스에 전달한다.
또는 Environment.GetCommandLineArgs()
을 사용하는 CustomConfigClass.Create()
메서드를 통해 만든 다음 언제든지 클래스를 초기화 할 수 있습니다.
첫 번째 옵션은 클래스를 단위 테스트 용으로 준비하고 나중에 명령 줄에 대한 종속성으로 인해 응용 프로그램을 중단시키지 않고 대체 구성 방법으로 전환하기가 더 쉽기 때문에 내 권장 사항입니다.
을 참조하십시오. 첫 번째 옵션은 여전히 다른 클래스에 대한 기본 메소드를 알아야하므로 내 문제가 해결되지 않습니다. IOC 컨테이너를 사용하고 있으므로 GetCommandLineArgs 기능을 제공하는 서비스를 만들고 다른 서비스가이 서비스를 사용하도록 만듭니다. 감사. –
그건 내 포인트를 약간 그리워합니다. IoC를 사용한다면, 커맨드 라인 args를 리턴하고, config를 리턴하는 서비스 인터페이스를 가지며, 커맨드 라인에서이를 얻는 클래스를 구현하는 서비스를 가지고 있지 않아야한다. 그렇게하면 단위 테스트를 위해 다른 클래스로 대체 할 수 있습니다. –
String [] myStr = Environment.GetCommandLineArgs();
예를 완료하는 데 항상 좋습니다.
당신이 사용하는 경우 .NET Compact Framework에서, Environment.GetCommandLineArgs() 메소드가 구현되지 않고 System.Diagnostics.Process.GetCurrentProcess(). StartInfo.Arguments 그래서 항상 당신은 주요 기능을 사용해야합니다 빈 문자열을 반환 그리고 다른 클래스에 인수를 전달하십시오.
예 :
[MTAThread]
static void Main(String[] commandLineArguments)
{
CommandLineHelper.parse(commandLineArguments);
}
public static class CommandLineHelper
{
public static void parse(String[] commandLineArguments) {
// add your code here
}
}
Compact Framework에 감사드립니다. 제 경우에는 args가 지정되었을 때 기본 폼을 표시하고 싶지 않았기 때문에 exe는 자동 모드로 실행됩니다.하지만 모든 유형의 정적 클래스에서 사용할 수있는 정적 클래스에 args를 저장할 수 있다고 제안 했으므로 신청. 이것은 모든 프레임 워크에서 작동해야합니다. 여기에 관심이있는 사람들을 위해 제 코드가 있습니다. static void Main (String [] cmd) { if (cmd.Length == 0) Application.Run (새 frmMain()); else MessageBox.Show (cmd [0]); } – kuklei
- 1. C에서 JS 변수에 액세스하는 방법 #
- 2. C에서 내부 클래스에서 외부 클래스 변수에 액세스하는 방법
- 3. foreach (C#) 외부 변수에 액세스하는 방법
- 4. C에서 명령 줄 응용 프로그램 번들에 액세스하는 방법
- 5. 외부 사이트에서 codeigniter 세션 변수에 액세스하는 방법
- 6. C에서 명령 줄 인수에 액세스
- 7. struts2에서 url 매개 변수에 액세스하는 방법
- 8. 게시물을 만들 때 매개 변수에 액세스하는 방법
- 9. 부트 스트랩에서 URL 매개 변수에 액세스하는 방법
- 10. 중첩 된 매개 변수에 액세스하는 방법
- 11. Objective-C에서 객체의 변수에 액세스하는 방법은 무엇입니까?
- 12. 명령 줄 매개 변수
- 13. 명령 줄 매개 변수에 따라 값을 true 또는 false로 설정
- 14. mysql 덤프 명령 줄 외부
- 15. C에서 부모 프로세스의 변수에 액세스하는 방법은 무엇입니까?
- 16. Go 프로그램에 전달 된 명령 줄 인수에 액세스하는 방법?
- 17. 중첩 된 함수에서 외부 변수에 액세스하는 Ruby
- 18. 사용자 지정 명령 줄 매개 변수
- 19. .net 명령 줄 매개 변수?
- 20. PLSQL 명령 줄 매개 변수
- 21. Java에서 main()이 매개 변수를 저장하지 않더라도 명령 줄 매개 변수를 가져 오는 방법이 있습니까?
- 22. .NET C# GUI 응용 프로그램 명령 줄
- 23. 명령 줄 매개 변수 가져 오기
- 24. Struts2에서 요청 매개 변수에 액세스하는 방법은 무엇입니까?
- 25. 모든 명령 줄 매개 변수 출력
- 26. 명령 줄 매개 변수에서 배열 할당
- 27. C++ 주 외부 명령 줄 인수에 대한 액세스?
- 28. 모델에서 시간 변수에 액세스하는 방법
- 29. 페이지의 세션 변수에 액세스하는 방법
- 30. Recaptcha 매개 변수에 액세스하는 방법 [recaptcha_challenge_field and recaptcha_response_field]?
GetCommandLineArgs은 [심각한 결함 (http://stackoverflow.com/questions/9287812/backslash-and-quote-in-command-line-arguments). 기피. 낱말을 전파하십시오. – Neolisk