Я пытаюсь заставить этот простой кусок кода работать.
public void GetHDDSerial()
{
var hdd = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Index = '0'")
.Get()
.Cast<ManagementObject>()
.First();
MessageBox.Show(hdd["Model"].ToString());
}
using System.Management
присутствует, и я также сделал ссылку на сборку (Visual Studio> Project> AddСсылка> System.Management).
Ошибка, которую я получаю, заключается в том, что метод Get () не определен.В частности:
Ошибка CS1061 «ManagementObjectSearcher» не содержит определения для «Get», а метод расширения «Get» не может быть найден, принимающий первый аргумент типа «ManagementObjectSearcher» (вы пропускаете использованиедиректива или ссылка на сборку?)
Как получилось?Я думал, что геттеры и сеттеры были предопределены.Нужно ли ссылаться на что-нибудь еще?
EDIT : Проходя через ManagementObjectSearcher и перечисляя все методы, которые на самом деле есть, я получаю следующие методы: ToString
, Equals
,GetHashCode
, GetType
.
РЕДАКТИРОВАТЬ # 2 : Переходя к определению (F12 или щелчок правой кнопкой мыши), я получаю это:
namespace myProgram
{
internal class ManagementObjectSearcher
{
private string v;
public ManagementObjectSearcher(string v)
{
this.v = v;
}
}
}
Версия .NET 4.6.01055, и я использую Visual Studio 2015 Enterprise.