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

其他识别信息

数据类型:字符串 访问类型:只读 除了资产标签信息之外,可用于识别物理元素的附加数据。一个示例是与也具有资产标签的元素相关联的条形码数据。如果只有条形码数据可用且唯一或能够用作元素键,则此属性为 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 回答