Powershell CmdLet和一次性领域/ CA1001

4 powershell

CmdLets和一次性领域的可接受模式是什么?

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

但除非PowerShell调用dispose方法....否则它实际上不会帮助实现该模式.

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

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

x0n*_*x0n 5

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

更新,la LetMeGoogleThatForYou:

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

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