0

我正在使用以下代码来获取服务的路径...

 string ServicePath = string.Format("Win32_Service.Name=\"{0}\"", "MyService");
 var WMiObject = new ManagementObject(ServicePath);
 string PathName = (string)WMiObject.GetPropertyValue("PathName");

现在,如果服务不可用,则调用 wmiObject.getPropertyValue("PathName") 将抛出 ManagementException..

在我的情况下,如果服务不可用,我需要分配 HardCoded 路径。如何实现?请指导...

4

2 回答 2

2
string Name = "MyService";
ServiceController service = ServiceController
                        .GetServices()
                        .Where(s => s.ServiceName == Name).FirstOrDefault();

if(null != service)
{
    // service exists
}
于 2012-05-15T16:45:29.770 回答
0

您可以在 WMiObject.GetPropertyValue 调用周围使用 try 块,并在 catch 块中分配常量值。

string PathName;
try
{
    PathName = (string)WMiObject.GetPropertyValue("PathName");
}
catch (ManagementException)
{
    PathName = "my constant path value";
}
于 2012-05-15T16:33:08.507 回答