在Win32_DiskDrive中。有一个Capabilities属性,它有一个System.UInt16 []类型。WMI Win32_DiskDrive功能属性 - 将UInt16转换为字符串
我试图通过使用GetProperty获取值并将其转换为字符串。但它一直在Capabilities属性上抛出一个错误(我不想陷入它)。
错误是:InvalidCastException的
消息:对象必须实现IConvertible。
在Win32_DiskDrive中。有一个Capabilities属性,它有一个System.UInt16 []类型。WMI Win32_DiskDrive功能属性 - 将UInt16转换为字符串
我试图通过使用GetProperty获取值并将其转换为字符串。但它一直在Capabilities属性上抛出一个错误(我不想陷入它)。
错误是:InvalidCastException的
消息:对象必须实现IConvertible。
Microsoft的WMI Code Creator工具可以生成C#,Visual Basic .NET和VBScript代码,以供您运行任何WMI查询并枚举结果。这对于探索WMI名称空间和类也非常有用,因此在处理WMI时是必需的。
现在回到问题。从System.UInt16[]
语法我假设你正在使用C#。下面是演示如何访问Capabilities
阵列的各个元素C#示例代码(通过WMI代码造物主产生,有一些小的改动):
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject queryObj in searcher.Get())
{
if(queryObj["Capabilities"] == null)
Console.WriteLine("Capabilities: {0}", queryObj["Capabilities"]);
else
{
UInt16[] arrCapabilities = (UInt16[])(queryObj["Capabilities"]);
foreach (UInt16 arrValue in arrCapabilities)
{
Console.WriteLine("Capabilities: {0}", arrValue);
}
}
Console.WriteLine();
}
要将UInt16
值转换为字符串,则可以使用例如:ToString
方法:
foreach (UInt16 arrValue in arrCapabilities)
{
Console.WriteLine(arrValue.ToString());
}
啊..这个部分很有用“foreach(arrCapabilities中的UInt16 arrValue)”谢谢! – jaysonragasa 2010-03-07 08:36:07
也许一段代码可以帮忙吗? – vpram86 2010-03-05 10:26:08