DisposableAction和Marshal.ReleaseComObject

做一些办公室Interop,代码是Type

try { selection = getSelected(Return.Some.Office.InteropObject); for ( int i = 0 ; i < selection.count ; i++) yield return selection.item(i) } finally { Marshal.ReleaseComObject(selection); } 

想知道用DisposableAction替换它是否是个好主意并改为

  using ( var a = new DisposableAction(getSelected(Return.Some.Office.InteropObject)) ) { foreach(var b in a.Items) yield return b; }