using System;
using Topshelf;
namespace WinServiceDemo.Console
{
///
/// Program
///
class Program
{
///
/// Defines the entry point of the application.
/// It is used to set up the Windows Service.
///
/// The arguments.
static void Main(string[] args)
{
//Configure service host
var rc = HostFactory.Run(configure =>
{
//Service actions
configure.Service(s =>
{
s.ConstructUsing(() => new ServiceManager());
s.WhenStarted(i => i.Start());
s.WhenStopped(i => i.Stop());
s.WhenShutdown(i => i.Stop());
});
//Service settings
configure.RunAsLocalSystem();
configure.StartAutomatically();
configure.SetStopTimeout(TimeSpan.FromSeconds(10));
configure.OnException(ex => { System.Console.WriteLine($"Windows Service level exception: {ex.Message}"); });
//Service description
configure.SetServiceName("WinServiceDemo.Console");
configure.SetDisplayName("WinServiceDemo.Console");
configure.SetDescription("C# Windows Service demo using Topshelf");
});
//Exit code
var exitCode = (int)Convert.ChangeType(rc, rc.GetTypeCode());
System.Console.WriteLine($"Exit code: {exitCode}");
Environment.ExitCode = exitCode;
}
}
}