views:

595

answers:

3

Hi i'm using this method for get the mac address

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;

    }

}

but i receive this error

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

What i have to do for fix it?

thanks

+1  A: 

Have you got the System.Management assembly referenced?

Mongus Pong
+3  A: 

You need to add a reference to System.Management in your project.

MoominTroll
+1  A: 

I think the issue here is that you don't have a proper "pointer" to the System.Management assembly. You must:

  • Use a using statement - in some of your code, you didn't prefix classes w/ System.Management, so you should either include:

a.)

using System.Management

or

b.) a using block

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

Next, you need to have a real assembly reference. To do this in Visual Studio, right click on your project (or on References) in the Solution Explorer window and click Add Reference. After the list tabulates, find System.Management.dll in the .NET tab. Once you add it, it should work!

Maxim Zaslavsky