System.ManagementおよびSystem.Management.Instrumentation名前空間を使用して、プログラムが実行されているハードウェアに関する情報を取得しようとしています。ただし、System.Managementの下のクラスが欠落しているようです。名前空間をインポートできますが、を除いて何も含まれていないようです。すべてのクラスを持っているように見えるインストルメンテーション名前空間。.net 4フレームワークAPIを見ていることを確認しましたが、そこにあるはずです。何か案は?
1 に答える
名前空間は、複数のフレームワークアセンブリに分散させることができます。これは確かにSystem.Management.Instrumentationの場合であり、System.Core.dllに表示されます。これは、プロジェクトを開始するために選択したプロジェクトテンプレートによって参照として自動的に追加されたアセンブリです。
System.Coreは非常に便利です。たとえば、Action<>およびFunc<>デリゲートタイプが含まれています。ほとんどすべてのプログラムがそれらを使用しているため、自動的に追加されます。System.Management.Instrumentation名前空間が登場しました。これは.NETアセンブリでは一般的ではありませんが、System.Coreはやや特殊で、.NET 3.5で追加されたクラスが含まれており、.NET2.0および.NET3.0アセンブリをいじりたくありませんでした。
ただし、WMIで何か便利なことを行うには、ManagementQueryのようなクラスが必要であり、それらは別のアセンブリSystem.Management.dllに存在します。これは、System.Coreの場合のように自動的に実行されるわけではなく、WMIは一般的に使用されるものではありません。したがって、それはオプションであり、あなたはそれを要求しなければなりません。
Project +AddReferenceを使用してSystem.Managementを追加します
MSDNライブラリを使用して、特定のクラスを使用するために追加する必要のあるアセンブリを見つけてください。記事の冒頭に詳しく説明されています。ManagementQueryの場合、次のように表示されます。
名前空間: System.Management
アセンブリ: System.Management(System.Management.dll内)
その最後の行があなたの手がかりです。