Wenn man in .NET eine WMI Query erzeugt
ManagementObjectSearcher oWMISearcher = new ManagementObjectSearcher(@"\meinserverrootcimv2", "select * from win32_process");
Dann bekommt mein eine ManagementObjectCollection zurück. Das Blöde: Die ist von Haus aus nicht “Linq-fähig” (warum habe ich verdrängt).
Eine Statement wie folgendes (um die Top 10 Speicherfresser zu ermitteln)
List<ManagementObject> oWMIObjects = (from ManagementObject oMO in oWMISearcher.Get() orderby UInt64.Parse(oMO.Properties["WorkingSetSize"].Value.ToString()) descending select oMO).Take(10).ToList();
geht einfach nicht. Wenn man allerdings Linq sagt was es zu erwarten hat in dem man statt from oMO
einfach from ManagementObject oMO
nimmt pfeift das Statement einwandfrei 🙂
Source des Wissens, kommt nicht von mir 😉