如何在用C#编写的Windows服务中使用this.ServiceName
以编程方式获取服务名称?当我尝试此操作时,它要求提供程序集引用,但不接受任何内容:
string path = this.ServiceName + ".config";
但它得到错误。
最佳答案
您的服务需要从ServiceBase
继承System.ServiceProcess.dll
。
拥有该属性后,您将可以访问this.ServiceName
属性。
样品:
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
string test = this.ServiceName;
}
protected override void OnStop()
{
}
}
如果要从Main()(程序类)访问它,则可以执行以下操作:
namespace WindowsService1
{
static class Program
{
static ServiceBase[] _servicesToRun;
static void Main()
{
_servicesToRun = new ServiceBase[]
{
new Service1()
};
string serviceName = _servicesToRun[0].ServiceName;
ServiceBase.Run(_servicesToRun);
}
}
}
关于c# - 如何在用C#编写的Windows服务中获取ServiceName?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4657355/