4

CmdLets と使い捨てフィールドで受け入れられるパターンは何ですか?

FxCop のルールは次のとおりです: 使い捨て可能なフィールドを所有する型は使い捨てであるべきです

しかし、PowerShell が dispose メソッドを呼び出さない限り、パターンを実装するのに実際には役に立ちません。

これまでのところ、Begin/EndProcessing メソッドを使用してフィールドを設定およびクリアしています。

残念ながら、PowerShell が Dispose メソッドを適切に呼び出すかどうかに関するドキュメントは見つかりませんでした。

4

1 に答える 1

5

Cmdlet (または PSCmdlet) 派生コマンドを実装する場合、IDisposable を実装すると、パイプラインの完了時に PowerShell によってコマンドが破棄されます。それはそれと同じくらい簡単です。これに反する動作が見られますか?

アップデート、La LetMeGoogleThatForYou:

「...このため、オブジェクトのクリーンアップを必要とするコマンドレットは、ファイナライザーを含む完全な 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 に答える