2011-09-17 27 views
4

我试图列出使用C#的WMI类中的所有可用字段。.NET中的WMI列表模式信息

我有被列出的所有表的可用等效的WMI

ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from meta_class"); 

foreach (ManagementClass wmiClass in searcher.Get()) 
{ 
    Console.WriteLine(wmiClass["__CLASS"].ToString()); 
} 

最接近但是它似乎没有为场没有这方面的等价物。

这是可能的还是仅仅是查阅参考手册以查看所有可用字段的情况?

回答

7

如果你有一个WMI类的实例,那么System.Management.ManagementBaseObject.Properties是所有属性的列表(WMI不分隔属性和字段 - 基于COM,它们都是属性)。

ManagementClassManagementBaseObject派生所以它也有一个Properties楼盘,WMI类的属性,所以要列出所有的属性:

var wmiClass = new ManagementClass("Win32_ComputerSystem"); 
foreach (var prop in wmiClass.Properties) { 
    Console.WriteLine(prop.Name); 
} 

(该Properties集合的每个元素都是一个PropertyData实例有很多关于每个物业的信息。)