我正在使用WMI Code Creator,代码看起来可以在应用程序中正常运行。但是,它出现了我的代码内部的错误,我似乎无法动摇。我是否应该参考这个工作?如果是这样我在哪里可以得到它?
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2\\Security\\MicrosoftVolumeEncryption",
"SELECT * FROM Win32_EncryptableVolume");
foreach (System.Management.ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_EncryptableVolume instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("ProtectionStatus: {0}", queryObj["ProtectionStatus"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
答案 0 :(得分:3)
如果您在MSDN上搜索ManagementObjectSearcher
,则会获得this page。在.NET类的每个MSDN页面上,您将在页面顶部看到两条信息。
命名空间:System.Management
程序集:System.Management(在System.Management.dll中)
第一行告诉您,如果要引用该对象,则需要添加using System.Management;
或System.Management.ManagementObjectSearcher
。
第二行告诉您项目必须引用文件System.Management.dll
以便您的代码能够找到该类。如果您在Add Reference Dialog中搜索,则需要在列表中查找System.Management
(括号内的部分)。
问题的第二部分是你的项目中有一个名为ComplianceGuide.ManagmentObject
的类,Visual Studio正在选择该引用而不是System.Management.ManagementObject
,用
foreach (System.Management.ManagementObject queryObj in searcher.Get())
强制它使用正确的类。