2012-07-02 25 views
4

CmdLets和一次性字段的接受模式是什麼?Powershell CmdLet和一次性字段/ CA1001

的FxCop的規則是:那些擁有一次性字段的類型應該是一次性的

但除非PowerShell中調用Dispose方法....它不會真正幫助實現該模式。

到目前爲止我使用Begin/EndProcessing方法來設置和清除字段。

我可能遺憾地沒有找到任何有關PowerShell是否正確調用Dispose方法的文檔。

回答

5

執行Cmdlet(或PSCmdlet)派生命令時,實現IDisposable,PowerShell將在管道完成時爲您處理您的命令。就這麼簡單。你是否看到與此相矛盾的行爲?

更新,一拉LetMeGoogleThatForYou:

」 ......爲此,需要清理的對象應該 實現完整的IDisposable模式,包括一個終結,所以 運行時可以同時調用某個cmdlet在處理結束時,系統管理。自動處理小組結束和處理方法 「。

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

+0

不,只是要求 - 在文檔中的所有中找不到cmdlet來IDisposable的任何引用。 – TomTom

+0

真的嗎?我搜索了「pipeline idisposable」,它出現在結果的第二個鏈接中。我會用鏈接更新我的問題。 – x0n

+0

謝謝。一定錯過了那一個。我查找了Cmdlet IDisposable,而不是管道;) – TomTom