c# - 将服务 "display name"转换为 "key name"C#

标签 c#

基本上,我在服务管理器中有一个很大的“显示名称”服务列表(即“后台智能传输服务”),我正试图弄清楚如何将它们“转换”为服务“ 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/

相关文章:

c# - 美元符号 ($"string") 有什么作用?

c# - ASP.NET Core 中的模型绑定(bind)以将下划线映射到首字母大写属性名称

c# - 基于 <T> 类型在运行时动态创建 lambda 谓词

c# - 一个 xelement 和多个命名空间

c# - InsertOnSubmit 没有附加?

c# - C# 中的通用接口(interface)是否可以防止装箱? (.NET 与单声道性能)

c# - 如何在 C# 中将 AVI 转换为 3gp?

c#如何正确格式化ffmpeg用户输入流?

C#,有没有map结构?

c# - 计算日、月、年