であることに気付きましたManagementObjectが、およびIDisposableからも返されます。これは、遭遇した各オブジェクトを破棄する必要があるということですか?ManagementClass.GetInstances()ManagementObjectSearcher.Get()
そのようです:
ManagementObject ret;
foreach(ManagementObject mo in searcher.Get()) {
if( IsWhatIWant(mo) ) ret = mo;
else mo.Dispose();
}
これをさらに混乱させます:ManagementBaseObject正しく実装されていないバグがありますIDisposable( Using 節が Dispose の呼び出しに失敗するを参照してください)。そのため、自分で呼び出すか、正しく呼び出すラッパーを使用する必要があります。
ManagementObjectCollections周りにたくさんいるのでイライラします。