web-dev-qa-db-ja.com

「ManagementClass」は名前空間「System.Management」に存在しません

こんにちは私は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?)

それを修正するために私は何をしなければなりませんか?

ありがとう

13
Luca Romagnoli

プロジェクトのSystem.Managementに 参照を追加 する必要があります。

26
MoominTroll

ここでの問題は、System.ManagementAssemblyへの適切な「ポインター」がないことだと思います。絶対です:

  • singステートメントを使用-一部のコードでは、System.Managementを使用してクラスのプレフィックスを付けなかったため、次のいずれかを含める必要があります。

a。)

using System.Management

または

b。)使用ブロック

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

次に、実際のアセンブリ参照が必要です。 Visual Studioでこれを行うには、ソリューションエクスプローラーウィンドウでプロジェクト(または参照)を右クリックし、[参照の追加]をクリックします。リストが集計されたら、[。NET]タブでSystem.Management.dllを見つけます。追加すると、機能するはずです。

12
Maxim Zaslavsky

ソリューションエクスプローラーの場合:

  1. 参照を追加
  2. .NETクラスでsystem.managementを見つけて追加します

それでおしまい

7
Ajay Tyagi

System.Management Assemblyを参照しましたか?

3
Mongus Pong

まず、ライブラリを追加してくださいSystems.Managementプロジェクト参照に。

次に、クラスに含めることで、参照されているアセンブリを使用します。

using System.Windows;
2
Khawaja Asim