在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