1

次の構造体があります。

static Memory memory;

  public struct Memory
  {
      public string Name;
      public string Manufacturer;
      public string MemoryType ;
      public string Speed;
      public string DeviceLocator;
      public string Capacity;
      public string OtherInfo;
  };

以下を除くすべてを取得できます。

    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory");
         ManagementObjectCollection myobject = searcher.Get();
             foreach (ManagementObject item in myobject)
             {
                memory.OtherInfo = item["OtherIdentifyingInfo"].ToString();
             }

上記を実行しようとすると、次のようになります。

Object reference not set to an instance of an object.

のインスタンスを何らかの方法で作成する必要があります item["OtherIdentifyingInfo"]か?

4

2 に答える 2

3

OtherIdentifyingInfo

データ型:文字列アクセス型:読み取り専用資産タグ情報以外の、物理要素の識別に使用できる追加データ。1つの例は、アセットタグも持つ要素に関連付けられたバーコードデータです。バーコードデータのみが使用可能で一意であるか、要素キーとして使用できる場合、このプロパティはNULLであり、バーコードデータはタグプロパティのクラスキーとして使用されます。このプロパティはCIM_PhysicalElementから継承されます。

文字列に渡す前に、値がNullかどうかを確認する必要があります。

于 2012-12-06T22:44:37.913 に答える
1

簡単なnullチェックでエラーは修正されますが、Win32_PhysicalMemory使用していないようですOtherIdentifyingInfo

memory = new Memory();
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory");
ManagementObjectCollection myobject = searcher.Get();
foreach (ManagementObject item in myobject)
{
    if (item["OtherIdentifyingInfo"] != null)
       memory.OtherInfo = item["OtherIdentifyingInfo"].ToString();
}
于 2012-12-06T22:52:39.337 に答える