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如何捕获那些"安装"或"开始"参数?
它可能使用Environment.CommandLine或Environment.GetCommandLineArgs.
进程的命令行存储在创建进程时留出的特殊存储区域中,这是在进程执行期间随时可用的方式.它可以通过本机GetCommandLine函数检索,这是在Windows进程中获取命令行参数的"官方"方式,并由.NET Environment成员包装.
将命令行作为参数传递给多种语言的"主"功能是该语言提供的便利.编译器生成启动代码,该代码调用GetCommandLine并将结果作为参数传递给main(或等效).类似地,返回值(如果有)main通常由编译器生成的进程拆除逻辑设置为进程的退出代码.