WMI без LINQ

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

WMI без LINQ

Сообщение FireFenix » 12.09.2009 (Сб) 19:05

Создал обычный VB.NET проект и накодил через WMI сбор данных о машине... После чего полез в свойства проекта и увидел кучу лишних рефренсов... после того как убрал System.Linq убрался доступ к элементам коллекции ManagementObjectCollection

Т.е. делал :
Код: Выделить всё
Dim Query As New ManagementObjectSearcher("SELECT * FROM Win32_Processor")
Dim qCollection As ManagementObjectCollection = Query.Get()

'Class 'System.Management.ManagementObjectCollection' cannot be indexed because it has no default property
qObject = qCollection(0) 'Вылетает с ошибкой что немогёт обратиться к элементу коллекции

Я раньше делал через For, а щас сделал через For Each qObject In qCollection
Иногда индексы 2 коллекций зависимы.... Можно ли как нить обратиться к соответствующим элементам? Ну т.е. Linq лишило возможности прямого обращения к элементу :cry:

И как обратиться к первому элементу коллекции?
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: WMI без LINQ

Сообщение Williams » 12.09.2009 (Сб) 19:33

'Class 'System.Management.ManagementObjectCollection' cannot be indexed because it has no default property


Юзай GetEnumerator :)
И вы думаете, что вас оставят в живых после прочтения этого поста?

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: WMI без LINQ

Сообщение FireFenix » 12.09.2009 (Сб) 19:57

Williams писал(а):
'Class 'System.Management.ManagementObjectCollection' cannot be indexed because it has no default property


Юзай GetEnumerator :)

Точно! ... А я тут панику развёл =)
Код: Выделить всё
        Dim Query As New ManagementObjectSearcher("SELECT * FROM Win32_Processor")
        Dim qEnum As ManagementObjectCollection.ManagementObjectEnumerator = Query.Get().GetEnumerator
        Dim qObject As New ManagementObject


        qEnum.MoveNext()
        qObject = qEnum.Current

Пасиб! =)
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 52

    TopList