TopShelf如何捕获像我的Main方法忽略的'install'或'start'这样的参数?

pen*_*ake 2 .net c# windows-services console-application topshelf

我作为初学者检查了TopShelf.

我看到,在编译控制台应用程序时,您可以将服务安装为:

MySampleWindowsService.exe install
Run Code Online (Sandbox Code Playgroud)

并开始:

MySampleWindowsService.exe start
Run Code Online (Sandbox Code Playgroud)

我不明白的是我的控制台应用程序不对这些参数做任何事情.

问题:那么TopShelf如何捕获那些"安装"或"开始"参数?

sha*_*tor 5

它可能使用Environment.CommandLineEnvironment.GetCommandLineArgs.

进程的命令行存储在创建进程时留出的特殊存储区域中,这是在进程执行期间随时可用的方式.它可以通过本机GetCommandLine函数检索,这是在Windows进程中获取命令行参数的"官方"方式,并由.NET Environment成员包装.

将命令行作为参数传递给多种语言的"主"功能是该语言提供的便利.编译器生成启动代码,该代码调用GetCommandLine并将结果作为参数传递给main(或等效).类似地,返回值(如果有)main通常由编译器生成的进程拆除逻辑设置为进程的退出代码.