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

Luc*_*oli 14 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;

    }

} 
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误

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

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

谢谢

Moo*_*oll 27

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


Max*_*sky 12

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

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

一个.)

using System.Management
Run Code Online (Sandbox Code Playgroud)

要么

b.)使用块

using(System.Management) 
{  
//your code goes here
}
Run Code Online (Sandbox Code Playgroud)

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


小智 7

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

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

而已