15

您好我正在使用此方法获取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?)

我必须做些什么来修复它?

谢谢

4

5 回答 5

30

您需要在项目中添加对 System.Management的引用。

于 2009-11-25T16:36:29.090 回答
13

我认为这里的问题是您没有指向 System.Management 程序集的正确“指针”。你必须:

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

一种。)

using System.Management

或者

b.) 使用块

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

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

于 2009-11-25T16:44:52.113 回答
8

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

  1. 添加参考
  2. 在 .NET 类中查找并添加 system.management

就是这样

于 2012-05-07T09:11:45.630 回答
3

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

于 2009-11-25T16:33:45.737 回答
2

请首先确保将库添加Systems.Management到您的项目引用中。

然后只需通过包含在您的课程中来使用该引用的程序集。

using System.Windows;
于 2016-09-08T13:19:41.360 回答