CmdLets和一次性字段的可接受模式是什么?
FxCop规则是:拥有一次性字段的类型应该是一次性的
但是除非PowerShell调用dispose方法....否则它实际上不会帮助实现模式。
到目前为止,我使用Begin / EndProcessing方法来设置和清除字段。
遗憾的是,我找不到有关PowerShell是否正确调用Dispose方法的任何文档。
答案 0 :(得分: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