我目前正在开发一些代码,需要从Win32_OperatingSystem类中获取一些属性,并且有一些代码如下所示:
var managmentObject = new System.Management.ManagementObject("Win32_OperatingSystem.Name='TotalVirtualMemorySize'");
var memory = (ulong) managmentObject["TotalVirtualMemorySize"]*1024ul;
此代码与this answer中提供的示例大致相同,但是当我运行它时,我收到了一个带有“Invalid class”消息的System.Managment.ManagmentException。有什么想法可能会发生什么?
答案 0 :(得分:1)
使用"Win32_OperatingSystem=@"
获取Win32_OperatingSystem类的当前实例。 @
表示一个对象是单例,在"备注"中的MSDN文档的底部提到了它。部分。
有关WMI中路径的信息,请阅读Describing an Instance Object Path。
答案 1 :(得分:0)
当你死寂说并且还提到here时,Win32_OperatingSystem
是singleton class
。要获取单个实例,请使用“@”作为密钥。
var managmentObject = new ManagementObject("Win32_OperatingSystem=@");
var memory = (ulong)managmentObject["TotalVirtualMemorySize"] * 1024ul;