You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下获取WMI类时枚举器代码报错,求助解决

问题分析与解决方案

看起来你碰到的是编译错误,核心问题出在对类和实例的误用上,咱们一步步来理清楚:

错误根源

你出错的这行代码:

using (PropertyDataCollection.PropertyDataEnumerator enumerator2 = ManagementClass.Properties.GetEnumerator())

这里的ManagementClass是类的名称,但Properties是实例属性——必须通过具体的ManagementClass对象实例才能访问,不能直接用类名调用。

而在你的循环里,已经有一个现成的实例变量managementClass(就是循环声明里foreach (ManagementClass managementClass in ...)这个小写开头的变量),你需要用这个实例来获取属性集合。

修正后的关键代码

把错误行替换成:

using (PropertyDataCollection.PropertyDataEnumerator enumerator2 = managementClass.Properties.GetEnumerator())

另外,我还注意到你代码里有一行完全冗余的代码:

new ManagementScope(new ManagementObject(managementScope, path, options2).Path, options);

这行创建了新的ManagementScope对象但没有赋值给任何变量,相当于做了无用功,建议删掉它来简化代码。

完整修正后的核心循环段

foreach (ManagementClass managementClass in from ManagementClass currentClass in managementObjectSearcher.Get() 
                                           orderby currentClass.ClassPath.ClassName 
                                           select currentClass)
{
    bool flag = false;
    using (PropertyDataCollection.PropertyDataEnumerator enumerator2 = managementClass.Properties.GetEnumerator())
    {
        while (enumerator2.MoveNext())
        {
            if (enumerator2.Current.Type == CimType.String)
            {
                flag = true;
            }
        }
    }
    if (flag)
    {
        WMIClass wmiclass = new WMIClass(managementClass);
        ListViewItem listViewItem = new ListViewItem 
        { 
            Name = wmiclass.DisplayName, 
            Text = wmiclass.DisplayName, 
            ToolTipText = wmiclass.Description, 
            Tag = wmiclass 
        };
        listViewItem.SubItems.Add(wmiclass.Description);
        items.Add(listViewItem);
    }
}

额外小提示

如果对C#的类和实例概念不太熟悉,可以记住这个简单规则:

  • 类名(比如ManagementClass)一般用来创建实例、访问静态成员
  • 实例变量(比如循环里的managementClass)才用来访问实例专属的成员(比如Properties、实例方法等)

这样修改后,你的代码应该就能正常编译运行了。

内容的提问来源于stack exchange,提问作者New Rolong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:48:09