基本上,我在服务管理器中有一个很大的“显示名称”服务列表(即“后台智能传输服务”),我正试图弄清楚如何将它们“转换”为服务“ key ”名称”(即“BITS”)。查了一下,我看到有 one solution用另一种语言 (delphi) 编写,似乎没有使用任何类型的字典,这对我来说意味着应该有某种方法可以在 C# 中完成。也许我只是谷歌搜索错误,但我发现与此相关的搜索结果很少。有没有人知道怎么做?
最佳答案
这将打印出显示名称及其服务名称(在您的问题中称为键名):
var services = ServiceController.GetServices();
foreach(var service in services)
{
Console.WriteLine("{0} = {1}", service.DisplayName, service.ServiceName);
}
引用 System.ServiceProcess 以访问 ServiceController。
编辑:要转换为字典(以便于查找)使用
var serviceNameLookups = ServiceController.GetServices().ToDictionary(s => s.DisplayName, s => s.ServiceName);
然后通过以下方式检索:
string serviceName;
serviceNameLookups.TryGetValue("Background Intelligent Transfer Service", out serviceName)
关于c# - 将服务 "display name"转换为 "key name"C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32194559/