以下のスニペットでは、コメント行によって System.Management.ManagementException がスローされ、「Invalid Class」というメッセージが表示されます。ただし、コレクションを反復した 後に Count プロパティを参照すると問題なく動作します。
このコードは、機能していたが失敗し始めた単体テストからのものです。何が変わったのか特定できませんでした。
ManagementScope scope = new ManagementScope(@"root\mypath");
scope.Options.Impersonation = ImpersonationLevel.Impersonate;
ObjectQuery query = new ObjectQuery("SELECT * FROM myclass");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection result = searcher.Get();
//int count = result.Count // throws exception
foreach (ManagementObject mo in result)
{
Console.WriteLine(mo.Path);
}
int count = result.Count // no problem
何か案は?