2012-07-02 3 views
4

Что такое принятый шаблон для CmdLets и одноразовых полей?Powershell CmdLet и одноразовые поля/CA1001

Правила FxCop является: Виды, которые владеют одноразовые полями должны быть одноразовыми

Но если PowerShell не вызывает метод Dispose .... это обыкновение реально помочь реализовать шаблон.

До сих пор я использую методы Begin/EndProcessing для настройки и очистки полей.

Возможно, я не смог найти документацию о том, правильно ли PowerShell вызывает метод Dispose.

ответ

5

При реализации команды Cmdlet (или PSCmdlet), реализующей IDisposable, и PowerShell будет использовать вашу команду для вас, когда конвейер завершится. Это так просто. Вы видите поведение, которое противоречит этому?

Update, а-ля LetMeGoogleThatForYou:

»... По этой причине, командлет, который требует объекта очистки должны реализовать полный IDisposable модели, в том числе финализатора, так , что во время выполнения можно назвать как System.Management.Automation.Cmdlet.EndProcessing и Dispose методы в конце обработки. "

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

+0

Неа, просто прошу - не мог найти ссылку на IDisposable в командлетах вообще в документации. – TomTom

+0

Действительно? Я googled «трубопровод idisposable» и появился во втором звене результатов. Я уточню свой вопрос по ссылке. – x0n

+0

Чинги. Должно быть, это пропустило. Я искал Cmdlet IDisposable, а не Pipeline;) – TomTom

Смежные вопросы