4

CmdLets 和一次性字段的可接受模式是什么?

FxCop 规则是:拥有一次性字段的类型应该是一次性的

但除非 PowerShell 调用 dispose 方法......它不会真正帮助实现该模式。

到目前为止,我使用 Begin/EndProcessing 方法来设置和清除字段。

遗憾的是,我找不到任何关于 PowerShell 是否正确调用 Dispose 方法的文档。

4

1 回答 1

5

在实现 Cmdlet(或 PSCmdlet)派生命令时,请实现 IDisposable,PowerShell 将在管道完成时为您处理您的命令。就这么简单。您是否看到与此相矛盾的行为?

更新,一个 LetMeGoogleThatForYou:

“...因此,需要对象清理的 cmdlet 应实现完整的 IDisposable 模式,包括终结器,以便运行时可以在处理结束时调用 System.Management.Automation.Cmdlet.EndProcessing 和 Dispose 方法。”

来自: http: //msdn.microsoft.com/en-us/library/windows/desktop/ms714463 (v=vs.85).aspx

于 2012-07-03T00:29:58.267 回答