我知道如何访问管理对象。让我们说一下:
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter");
foreach (var nic in searcher.Get())
{
Console.WriteLine(nic["caption"]);
}
现在这个nic [] - synthax使用非常糟糕。如果我看一下visual studio服务器资源管理器,我看,它为我选择的每个对象填充了一个属性网格。闻起来就像他们在那里创建可绑定的类。是否有任何库或方法来做同样的事情?我想得到像
这样的语法var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter");
foreach (var nic in searcher.Get())
{
Console.WriteLine((nic as Win32NetworkAdapter).Caption);
}
我只是不想浪费时间去实施已经发明的新东西!
答案 0 :(得分:2)
为什么不使用Visual Studio中的Mgmtclassgen.exe (Management Strongly Typed Class Generator)?
答案 1 :(得分:1)
WMI接受查询并返回一组不确定的结果。该查询类似于SQL,因此它可能只返回某些列。属性网格只是将每个返回的值枚举为单独的名称和值。任何查询结果都没有固定的列集。因此,您需要从返回的列表中显式获取每个。
答案 2 :(得分:0)
为了让别人像我一样快乐,我创造了一个解决我问题的T4。它记录在http://www.codingfreaks.de/2011/11/22/t4-fur-wmi-zugriff/(德语!!!),可以在http://www.codingfreaks.de/files/wmi01/WmiHelper.tt获得。为了使它工作,只需
享受!