名称空间'System.Management'中不存在'ManagementClass'

时间:2009-11-25 16:27:23

标签: c# asp.net macos mac-address

您好我正在使用此方法获取mac地址

public string GetMACAddress()
{
    System.Management.ManagementClass mc = default(System.Management.ManagementClass);
    ManagementObject mo = default(ManagementObject);
    mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

    ManagementObjectCollection moc = mc.GetInstances();
    foreach (var mo in moc)
    {
        if (mo.Item("IPEnabled") == true)
        {
            return mo.Item("MacAddress").ToString();
        }else
            return null;

    }

} 

但我收到此错误

Compiler Error Message: CS0234: The type or namespace name 'ManagementClass' does not exist in the namespace 'System.Management' (are you missing an assembly reference?)

我需要做些什么来解决它?

感谢

5 个答案:

答案 0 :(得分:25)

您需要add a reference到项目中的System.Management。

答案 1 :(得分:12)

我认为这里的问题是你没有一个适当的“指针”指向System.Management程序集。你必须:

  • 使用using语句 - 在某些代码中,您没有使用System.Management作为前缀的类,因此您应该包括:

a。)

using System.Management

b。)使用块

using(System.Management) 
{  
//your code goes here
}

接下来,您需要一个真实的程序集参考。要在Visual Studio中执行此操作,请在“解决方案资源管理器”窗口中右键单击项目(或“引用”),然后单击“添加引用”。列表制表后,在.NET选项卡中找到System.Management.dll。一旦你添加它,它应该工作!

答案 2 :(得分:7)

在解决方案资源管理器中:

  1. 添加参考
  2. 在.NET类中查找并添加system.management
  3. 就是这样

答案 3 :(得分:3)

您是否引用了System.Management程序集?

答案 4 :(得分:2)

请先确保将库Systems.Management添加到项目参考中。

然后通过在您的班级中加入来使用该推荐的程序集。

using System.Windows;