【问题标题】:What is the reference namespace of Win32_NetworkAdapter in visual studio C# express?Visual Studio C# express 中 Win32_NetworkAdapter 的引用命名空间是什么?
【发布时间】:2012-03-14 17:48:35
【问题描述】:

我目前正在编写一个小程序,它必须远程控制一些设备(它们的服务和硬件,如 LAN 端口)。我已经用谷歌搜索并阅读了许多有关 WMI 的信息,现在我正在尝试制作我的程序。

但我找不到 Win32_NetworkAdapter 类的引用命名空间。我已经将 System.Management 和 Microsoft.Win32 导入到项目中,但 SDK 仍然告诉我找不到 Win32_NetworkAdapter。

我在这里错过了什么?

PS。我正在使用 windows XP、VS Express 2010 Express for dev。

感谢您的帮助。


这是我的自动取款机代码:

string manage = "SELECT * From Win32_NetworkAdapter";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(manage);
ManagementObjectCollection collection = searcher.Get();

foreach (ManagementObject obj in collection)
{
    if (obj["Name"].ToString() != null)
    {
        if (obj["Name"].ToString() == "Realtek RTL8168C(P)/8111C(P) PCI-E Gigabit Ethernet NIC")
        {
            obj.InvokeMethod("Disable", null);
            textBox3.Text += "finished";
        }
    }
}

我在debug模式下运行,发现obj的属性(Classpath、Options、Path、Scope)显示错误信息:

函数评估被禁用,因为之前的函数评估 时间到。您必须继续执行才能重新启用功能 评估。

有什么想法吗?

【问题讨论】:

    标签: c# wmi


    【解决方案1】:

    WMI“类”不是 C# 意义上的类。他们选择这个名词是因为它们类似于一个类。它们有名称、属性和方法,就像 C# 类一样。

    在底层它是一个 COM 接口。这也解释了您收到的调试器警告,COM 接口具有线程关联性。调试器在单独的线程(调试器线程)上评估监视表达式。当断点处于活动状态时,它可能会死锁,访问接口的线程被调试器冻结。这不是真正的问题,只是带来不便。

    不清楚您遇到了什么样的问题,如果 Win32_NetworkAdapter 查询没有返回某事,您将无法获得调试器警告。可能会出现轻微错误的名称,请注意您的代码只能在另一台机器上偶然运行。而且 WMI 确实往往是不稳定的,它严重依赖驱动程序返回信息,并且驱动程序不是平等的。它们的质量大致与您在硬件上花费的金额成正比。到目前为止,试验和测试 WMI 查询的最佳方法是使用 WMI Code Creator utility。它允许您执行任意查询,甚至可以选择自动生成所需的 C# 代码。强烈推荐。

    【讨论】:

    • 谢谢。我想我可能对这些概念有一些误解。在再次解决这个问题之前,我会阅读一些信息。
    【解决方案2】:

    您可以按照@Wiktor Zychla 的建议使用它们,也可以使用mgmtclassgen.exe 生成一个强类型的C# 类。另请参阅SO question/answer,了解有关该主题的更多信息和链接。

    【讨论】:

      【解决方案3】:

      您不使用 C# 中的 WMI 类作为类。相反,您将类名传递给 WMI 查询方法:

      var search = new ManagementObjectSearcher( "SELECT * FROM Win32_NetworkAdapter" );
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-28
      • 2021-11-29
      • 2013-05-17
      • 2010-11-15
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多