我遇到了一些我不太懂的错误。我希望有人可以帮助我。
我获得的第一个例外是我的foreach中的'in'System.Management.ManagementException
。
下一个是“设备”范围之外的索引。让我感到困惑的是,当它不接受传递给它的变量时,这是有效的。当我重新考虑它以使其更加灵活时,它就破了。
有人能指出我正确的方向吗?
Property和win32Class从主程序传入此类
这是我传递的内容和方式
static void Main(string[] args)
{
GatherSystemINfoWMI.GetPropertyValue("name", "Win32_CDROMDrive");
}
//这就是我将它传递给
的内容 public static void GetPropertyValue(string property, string win32Class)
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("Select " + property + "from " + win32Class);
foreach (ManagementObject device in searcher.Get())
{
Console.WriteLine("Name: {0} ",
device.GetPropertyValue("Name"));
Console.WriteLine(device.GetPropertyValue(property) + "\n");
Console.ReadKey();
}
答案 0 :(得分:0)
在sql的“from”部分添加一个空格:
替换
"Select " + property + "from " + win32Class
与
"Select " + property + " from " + win32Class
或者更好地使用string.Format()
:
string query = string.Format("Select {0} from {1}", property, win32Class);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);