Question 'ManagementClass' n'existe pas dans l'espace de noms 'System.Management'


Salut, j'utilise cette méthode pour obtenir l'adresse 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;

    }

} 

mais je reçois cette erreur

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

Que dois-je faire pour le réparer?

Merci


10
2017-11-25 16:27


origine


Réponses:


Tu dois ajouter une référence à System.Management dans votre projet.


21
2017-11-25 16:36



Je pense que le problème ici est que vous n'avez pas un "pointeur" approprié à l'assembly System.Management. Vous devez:

  • Utiliser une instruction using - dans certains de vos codes, vous n'avez pas ajouté de préfixe de classes avec System.Management, vous devez donc inclure:

une.)

using System.Management

ou

b.) un bloc utilisant

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

Ensuite, vous devez avoir un référence d'assemblage réel. Pour ce faire, dans Visual Studio, cliquez avec le bouton droit sur votre projet (ou sur Références) dans la fenêtre Explorateur de solutions et cliquez sur Ajouter une référence. Une fois la liste tabulée, recherchez System.Management.dll dans l'onglet .NET. Une fois que vous l'ajoutez, cela devrait fonctionner!


10
2017-11-25 16:44



Dans l'explorateur de solutions:

  1. ajouter une référence
  2. rechercher et ajouter system.management dans la classe .NET

c'est tout


5
2018-05-07 09:11



Avez-vous l'assemblage System.Management référencé?


2
2017-11-25 16:33



Veuillez d'abord vous assurer d'ajouter la bibliothèque Systems.Management dans vos références de projet.

Ensuite, utilisez simplement cet ensemble référencé en incluant dans votre classe.

using System.Windows;

1
2017-09-08 13:19