Перечислить коллекцию свойств в vb.net

В статье Microsoft, ManagementBaseObject.Properties Property, показано, как перечислить свойства в коллекции

    For Each p As PropertyData In properties
        Console.WriteLine(p.Name)
        For Each q As QualifierData In p.Qualifiers
            If (q.Name.Equals("Description")) Then
                Console.WriteLine(processClass.GetPropertyQualifierValue(.Name, q.Name))
            End If 
        Next
        Console.WriteLine()
    Next 
End Function 

И эта статья http://msdn.microsoft.com/en-us/library/ms257359.aspx демонстрирует получение информации из WMI.

То, что я пытаюсь сделать, это запустить запрос WMI, например «SELECT * FROM Win32_Environment». Но я не могу перечислить коллекцию, потому что envVar не является PropertyDataCollection:

Dim query As New ObjectQuery(strQuery)
Dim searcher As New ManagementObjectSearcher(scope, query)
For Each queryObj As ManagementObject In searcher.Get()
   s = s & queryObj("Name").ToString() & ": " & queryObj("VariableValue").ToString()
Next

Как мне перечислить эту коллекцию, не зная имен? Кажется, я не могу заставить его работать, так как queryObj не является коллекцией.


person simon    schedule 17.12.2012    source источник


Ответы (1)


Если мне не изменяет память, ваш цикл должен быть примерно таким

Dim searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Environment")
Dim queryObj As ManagementObjectCollection = searcher.Get()
For Each mo in queryObj
    Console.WriteLine("----------------")
    For Each prop in mo.Properties
        Console.WriteLine("{0}: {1}", prop.Name, prop.Value)
    Next
Next
person Steve    schedule 17.12.2012