C# 将集合中的ManagementObject对象读入类型化变量
我有一个C# 将集合中的ManagementObject对象读入类型化变量,c#,wmi,C#,Wmi,我有一个ManagementObjects的集合。管理对象的属性有不同的类型:int、string、array、DateTime等 我想将属性值读入适当的变量类型。 ManagementScope manScope = new ManagementScope(@"\\.\root\virtualization\v2"); manScope.Connect(); ObjectQuery queryObj = new ObjectQuery("SELECT * FROM Msvm_Computer
ManagementObject
s的集合。管理对象的属性有不同的类型:int、string、array、DateTime等
我想将属性值读入适当的变量类型。
ManagementScope manScope = new ManagementScope(@"\\.\root\virtualization\v2");
manScope.Connect();
ObjectQuery queryObj = new ObjectQuery("SELECT * FROM Msvm_ComputerSystem");
ManagementObjectSearcher vmSearcher = new ManagementObjectSearcher(manScope, queryObj);
ManagementObjectCollection vmCollection = vmSearcher.Get();
foreach (ManagementObject vm in vmCollection) {
**//Fine so far. This is not a question about iteration.**
//Now I want to so something programmatic with the values.
//If it is a string, this is fine:
string myString = vm["Description"].ToString();
//If it is an integer, I can go like this:
int myInt =int.Parse(vm["EnabledState"].ToString());
//But surely c# has a better way than that? Turn it into a string and then an int?
//If it is DateTime, I have no idea what to do - DateTime.Parse() doesn't work:
//DateTime myDate = DateTime.Parse(vm["LastSuccessfulBackupTime"].ToString());
}
我已经阅读了文档(其中没有一个例子)。
我使用了WMI代码创建者,它也没有帮助,因为它只是将所有内容都放到控制台:console.WriteLine(“InstallDate:{0}”,queryObj[“InstallDate”]) 这是一个非常不寻常的要求,但仍然-我建议查看类的详细信息并创建具有相同数据类型的变量。
在集合中获取数据后,您可以尝试将其解析为适当的变量。。抱歉@UweKeim,但这篇文章没有帮助,WMI代码创建者也没有帮助。我更新了这个问题来澄清它。